本机环境:
Windows 7 Ultimate 64bit
JDK 6_32
Maven 3.0.4
Maven配置与安装:
1. 确保安装JDK,且要求JDK版本高于1.5
2. 从官网下载maven并解压到你所希望的目录。
3. 更改环境变量:
a. 设置M2_HOME=你安装的目录
b. 更改path添加%M2_HOME%\bin;
c. maven本地仓库:M2_REPO:maven默认将下载的包防止在~/.m2中,~表示用户目录,需要时刻使用M2_REPO变量更改它。
d. 设置MAVEN_OPTS为-Xms128m -Xmx512m,因为JAVA默认的最大可用内存往往不能够满足MAVEN运行的需要,所以需要更改。
4. 将%M2_HOME%/conf/settings.xml复制到%M2_REPO%/settings.xml。这是一条最佳实践,因为maven可以选择配置 %M2_HOME%/conf/settings.xml或者%M2_REPO%/settings.xml,前者是全局范围的,后者是用户范围的,推荐使用用户范围settings.xml是因为可避免影响其他用户,其次方便升级,避免了升级时复制settings.xml并粘贴回升级文件夹。
5. 打开CMD,运行mvn help:system,maven会下载maven-help-plugin,并放置于本地仓库中。
MAVEN坐标详解:
maven坐标为各种构件引入了秩序,任何一个构件都必须明确定义自己的坐标。
而一组maven坐标是通过一些元素定义的:groupId,artifactId,version,packageing,classifier;
1
com.lhy.mvnbook
2
hello-world
3
1.0-SNAPSHOT
4
jar
groupId:定义当前maven项目隶属于的实际项目;
artifactId:该元素定义实际项目中的一个maven模块。推荐的做法是使用项目名做artifactId的前缀。
version:定义当前版本。
packaging:打包方式
classifier:帮助定义构件输出的一些附属构件。例如主构件是nexus-indexer-2.0.0.jar;
则可通过其他一些插件生成nexus-indexer-2.0.0-javadoc.jar; nexus-indexer-2.0.0-sources.jar。
示例:创建简单的HelloWorld程序:
MAVAEN基本命令:
mvn clean /compile /test /package /install /dependency/
对应功能: 清理/编译/运行测试/打包/安装(安装到maven本地仓库)
mvn archetype:generate使用archetype插件帮助完成项目骨架创建
maven功能:
1. 模块的聚合与继承配置
2. maven反应堆
3. 重用测试代码(maven打包不会打包测试代码,但有可能该模块会在项目间重用,此时则需要重用测试代码)
其他资料:
测试覆盖率报告:测试覆盖率是衡量项目代码质量的一个重要的参考指标。Cobertura是一个优秀的开源测试覆盖率统计工具(http://cobertura.sourceforge.net)
Maven通过cobertura-maven-plugin与之继承,用户可简单实用$ mvn cobertura:cobertura来生成测试覆盖率报告。(报告于target/site/cobertura下的index.html查看)