1·maven的作用
2使用maven的好处
(1)约定大于配置
使用约定,约定java源代码代码必须放在哪个目录下,编译好的java代码又必须放到哪个目录下,这些目录都有明确的约定。
(2) Mavend的每一个命令有一个生命周期,如install命令可从清理到部署
(3)处理jar包的依赖关系(pom.xml)
(4)输出我们需要的文件
3 maven项目的构建过程
maven把项目分为【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤
4 maven的命令
vn validate |
验证项目是否正确,以及所有为了完整构建必要的信息是否可用 |
mvn generate-sources |
生成所有需要包含在编译过程中的源代码 |
mvn process-sources |
处理源代码,比如过滤一些值 |
mvn generate-resources |
生成所有需要包含在打包过程中的资源文件 |
mvn process-resources |
复制并处理资源文件至目标目录,准备打包 |
mvn compile |
编译项目的源代码 |
mvn process-classes |
后处理编译生成的文件,例如对Java类进行字节码增强(bytecode enhancement) |
mvn generate-test-sources |
生成所有包含在测试编译过程中的测试源码 |
mvn process-test-sources |
处理测试源码,比如过滤一些值 |
mvn generate-test-resources |
生成测试需要的资源文件 |
mvn process-test-resources |
复制并处理测试资源文件至测试目标目录 |
mvn test-compile |
编译测试源码至测试目标目录 |
mvn test |
使用合适的单元测试框架运行测试。这些测试应该不需要代码被打包或发布 |
mvn prepare-package |
在真正的打包之前,执行一些准备打包必要的操作。这通常会产生一个包的展开的处理过的版本(将会在Maven 2.1+中实现) |
mvn package |
将编译好的代码打包成可分发的格式,如JAR,WAR,或者EAR |
mvn pre-integration-test |
执行一些在集成测试运行之前需要的动作。如建立集成测试需要的环境 |
mvn integration-test |
如果有必要的话,处理包并发布至集成测试可以运行的环境 |
mvn post-integration-test |
执行一些在集成测试运行之后需要的动作。如清理集成测试环境。 |
mvn verify |
执行所有检查,验证包是有效的,符合质量规范 |
mvn install |
安装包至本地仓库,以备本地的其它项目作为依赖使用 |
mvn deploy |
复制最终的包至远程仓库,共享给其它开发人员和项目(通常和一次正式的发布相关) |
5 pom.xml
(1)加入依赖包
<dependency>标签最常用的四个属性标签:
groupId:项目组织唯一的标识符,实际对应JAVA的包的结构。
artifactId:项目唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
version:jar包的版本号。可以直接填版本数字,也可以在properties标签中设置属性值。
scope:jar包的作用范围。可以填写compile、runtime、test、system和provided。用来在编译、测试等场景下选择对应的classpath。
(2)插件的使用
添加Maven插件,可以在pom.xml文件中添加<plugin>标签。
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
其中,<configuration>标签用来配置插件的一些使用参数。