最近很火热的12306的订票软件go-home,我也下载了一份下来了,使用了一下,也从svn中把代码down下来了,但是在eclipse中竟然出错了,依赖的jar包都没有找到,后来才知道人家是用maven来管理依赖的,所以就去看了下maven,发现还真是很强大很方便的一个工具,特记录一下简单的配置和使用。
首先是下载,给个地址就行了,太多的就不用说了。下载地址:http://maven.apache.org/download.html
接下来就是配置咯,下载下来了总得能运行才行嘛。
maven的运行依赖一下几个环境变量:M2_HOME、M2和JAVA_HOME,另外需要在path中保证有M2和%JAVA_HOME%\bin。
解压maven到本地后,在环境变量中新建名为M2_HOME,值为本地maven路径的值;增加名为M2,值为%M2_HOME%\bin的环境变量,并将%M2_HOME%\bin加到Path中,最基本的JAVA_HOME需要指定到本地jdk的目录。
以上几个环境变量的设置结束之后,在命令行cmd中输入mvn -version,能正确的出现结果则表示配置完成了。
最后跑一下示例,在命令行中输入:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=falsemaven此时第一次运行,会自动下载常用的些依赖包和一些其他文件到本地仓库,由于网络原因,可能会需要多次执行该命令才能最终成功。成功后,此时maven已经将我们的项目结构建立起来了,在执行命令行的目录中,已经创建了一个叫my-app的目录了,项目的目录结构如下:my-app |-- pom.xml `-- src |-- main | `-- java | `-- com | `-- mycompany | `-- app | `-- App.java `-- test `-- java `-- com `-- mycompany `-- app `-- AppTest.javasrc/main目录中存放java代码,src\test目录中存放测试代码。
跟ant脚本类似,ant需要build.xml,而maven需要的是pom.xml。pom.xml中描述了项目中的依赖关系,需要那些jar,配置一下,maven会自动帮你从网上下载所需要的包。pom.xml文件的详细介绍留着下次在说吧。
项目创建出来了之后就该打包编译了,使用mvn package命令即可。build成功之后使用以下命令则可以执行打包好的jar包。
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
结果会输出:Hello World!
maven常用的一些其他的命令:
- validate 验证项目必须信息的完整性
- test 运行单元测试代码
- verify 验证包
- install 安装本地jar包到仓库
- deploy 部署项目
- compile 编译项目
- package 打包项目
- clean 清除之前的build结果
- site 生成项目文档
- integration-test
还有一个很方便的地方,就是可以在一个命令中干多件事情,例如:
mvn clean dependency:copy-dependencies package上面的命令会先清理项目的输出,然后拷贝依赖,最后打包项目。
了解了maven的基本知识之后,对于svn出来的go-home代码已经有办法处理了。安装maven之后,直接mvn package就ok了,让maven自动去下载所需要的依赖,不成功多试几下将所有的依赖都下载完之后就可以正常编译成功了。对于想改进该软件的同志们,可以修改后发布新版本咯。