1. Maven Dependency 插件能够帮助你发现对于依赖的直接引用
dependency:analyze
2. 列出项目中所有的直接和传递性依赖
dependency:tree
3. 排除并替换一个传递性依赖
<dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate</artifactId> <version>3.2.5.ga</version> <exclusions> <exclusion> <groupId>javax.transaction</groupId> <artifactId>jta</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-jta_1.1_spec</artifactId> <version>1.1</version> </dependency> </dependencies>
4. Maven 默认生命周期阶段
生命周期阶段 描述 validate 验证项目是否正确,以及所有为了完整构建必要的信息是否可用 generate-sources 生成所有需要包含在编译过程中的源代码 process-sources 处理源代码,比如过滤一些值 generate-resources 生成所有需要包含在打包过程中的资源文件 process-resources 复制并处理资源文件至目标目录,准备打包 compile 编译项目的源代码 process-classes 后处理编译生成的文件,例如对Java 类进行字节码增强(bytecodeenhancement) generate-test-sources 生成所有包含在测试编译过程中的测试源码 process-test-sources 处理测试源码,比如过滤一些值 generate-test-resources 生成测试需要的资源文件 process-test-resources 复制并处理测试资源文件至测试目标目录 test-compile 编译测试源码至测试目标目录 test 使用合适的单元测试框架运行测试。这些测试应该不需要代码被打包或发布 prepare-package 在真正的打包之前,执行一些准备打包必要的操作。这通常会产生一个包的展开的处理过的版本(将会在Maven 2.1+中实现) package 将编译好的代码打包成可分发的格式,如JAR,WAR,或者EAR pre-integration-test 执行一些在集成测试运行之前需要的动作。如建立集成测试需要的环境 integration-test 如果有必要的话,处理包并发布至集成测试可以运行的环境 post-integration-test 执行一些在集成测试运行之后需要的动作。如清理集成测试环境。 verify 执行所有检查,验证包是有效的,符合质量规范生命周期阶段 描述 install 安装包至本地仓库,以备本地的其它项目作为依赖使用 deploy 复制最终的包至远程仓库,共享给其它开发人员和项目(通常和一次正式的发布相关)
5.配置Surefire 忽略单元测试失败
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <testFailureIgnore>true</testFailureIgnore> </configuration> </plugin
6. 跳过整个测试
$ mvn install -Dmaven.test.skip=true
7. 不同环境间构建(Profile,profiles.xml)
<profiles> <!-- 开发环境 --> <profile> <id>development</id> <activation> <activeByDefault>true</activeByDefault> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <debug>true</debug> <optimize>false</optimize> </configuration> </plugin> </plugins> <resources> <resource> <directory>${basedir}/src/main/resources</directory> </resource> <resource> <directory>${basedir}/src/main/development</directory> </resource> </resources> </build> </profile> <profile> <!-- 生产环境 --> <id>production</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <debug>false</debug> <optimize>true</optimize> </configuration> </plugin> </plugins> <resources> <resource> <directory>${basedir}/src/main/resources</directory> </resource> <resource> <directory>${basedir}/src/main/production</directory> </resource> </resources> </build> </profile> </profiles>
构建不同环境的命令:
//使用development环境构建项目 mvn clean install -Pdevelopment -X 或者(默认development): mvn clean install -X
//使用production环境构建项目 mvn clean install -Pproduction -X
<注> -X :开启调试输出。
8. 列出活动的Profile
mvn help:active-profiles