mvn clean package -U -pl xxx -P xxx -Dmaven.test.skip=true -e clean 运行mvn命令时常用的参数有,-B -e -U -pl -D -P,这些参数是Maven自身的,在命令行、持续集成环境都适用。 -B 使Maven在批处理模式下运行,避免需要人工参与交互而造成挂起,在持续集成等不希望人工参与的环境很有用。 -e 在运行maven出现异常时打印完整的异常栈,对问题的分析很有帮助 -U 强制Maven检查所有快照版(snapshot)依赖的更新,默认情况下Maven每天检查快照版(snapshot)依赖的是否更新,在实际开发中快照版的更新频率远高于这个频率,-U参数能保证每一次运行都是基于最新状态的,在持续集成环境这一点尤其重要。 -D 设置maven运行时的系统变量,和Java的-D参数类似,如:maven.repo.local、maven.test.skip -P 指定构建使用的环境变量,通常每个项目(尤其是web项目)会在不同的环境下运行,如:开发环境、测试环境、生产环境等,不同的环境的配置是不完全相同的,使用Maven的profiefs可以方便的构建出适合不同运行环境的包,运行时使用的环境变量由-P参数指定。 -pl 在一个项目有多个模块儿,而又不想同时构建所有模块儿时,通过-pl参数指定要构建的模块儿,个人觉得这个参数用的场景不多,在模块儿很多的情况下,更应该从模块儿的上进行拆分,减少模块儿间的依赖。 -pl xxx 选项后跟随{groupId}:{artifactId}或者所选模块的相对路径(多个模块以逗号分隔) -am 表示同时处理选定模块所依赖的模块 Pprod/test... pom.xml文件下,在指定的中,找到对应的对象值 -am 表示同时处理选定模块所依赖的模块 -amd 表示同时处理依赖选定模块的模块 -Dmaven.test.skip=true 不执行测试用例,也不编译测试用例类 Maven中-DskipTests和-Dmaven.test.skip=true的区别 在使用mvn package进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了跳过测试,会使用参数-DskipTests和-Dmaven.test.skip=true,这两个参数的主要区别是: -DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。 -Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。