一、基础参数
参数 | 说明 |
---|
-Dmaven.test.skip=true | 跳过测试(编译和执行都跳过)。 |
-DskipTests | 仅跳过测试执行(但会编译测试代码)。 |
-X | 开启调试模式,输出详细日志(排查构建问题)。 |
-q | 静默模式,仅输出错误信息。 |
-e | 显示详细错误堆栈(适合排查异常)。 |
-U | 强制更新快照依赖(忽略本地缓存,从远程仓库拉取最新快照版本)。 |
二、模块控制参数
参数 | 说明 |
---|
-pl, --projects | 指定要构建的模块(支持逗号分隔)。例如:mvn package -pl module1,module2 。 |
-am, --also-make | 构建指定模块及其依赖的模块。例如:mvn package -pl moduleB -am 。 |
-amd, --also-make-dependents | 构建指定模块及其依赖它的模块。例如:mvn package -pl moduleC -amd 。 |
三、打包过程控制
参数 | 说明 |
---|
-DskipAssembly | 跳过 Assembly 插件(适用于 maven-assembly-plugin 的打包任务)。 |
-DdescriptorRefs | 指定 Assembly 描述符(自定义打包结构)。例如:jar-with-dependencies 。 |
-Dmaven.exec.skip=true | 跳过 Exec 插件的执行目标(如 java 或 exec:java )。 |
四、构建输出控制
参数 | 说明 |
---|
-DoutputDirectory | 自定义打包输出目录。例如:mvn package -DoutputDirectory=./dist 。 |
-DfinalName | 修改生成的文件名。例如:mvn package -DfinalName=myapp-1.0.jar 。 |
五、插件相关参数
1. Maven JAR 插件
参数 | 说明 |
---|
-Djar.finalName | 指定 JAR 文件名。 |
-Djar.manifest.mainClass | 设置 JAR Manifest 的主类(用于可执行 JAR)。 |
2. Maven Shade 插件
参数 | 说明 |
---|
-Dshade.jar.name | 自定义 Shade 打包后的文件名。 |
-Dshade.relocations | 重定位依赖包的包路径(避免冲突)。 |
六、性能优化参数
参数 | 说明 |
---|
-T, --threads | 并行构建。例如:-T 4 表示使用 4 个线程。 |
-Dmaven.compile.fork=true | 启用编译器多线程(加速编译)。 |
七、完整示例
1. 常规打包(跳过测试)
mvn clean package -DskipTests
2. 打包指定模块
mvn clean package -pl service-module,web-module -am
3. 生成可执行 JAR(使用 Shade 插件)
mvn clean package -Dshade.finalName=myapp.jar -Dshade.relocations=com.example=shaded.com.example
4. 强制更新快照依赖并并行构建
mvn clean install -U -T 2
八、注意事项
- 参数顺序
参数位置可能影响结果,例如 -DskipTests
应放在 package
前或后均可,但某些插件参数需紧跟插件目标。 - 插件配置优先级
命令行参数会覆盖 pom.xml
中的默认配置。 - 依赖冲突
使用 -Dmaven.test.skip=true
时,若测试依赖未编译可能导致意外错误。
通过合理组合这些参数,可以高效控制 Maven 打包流程,满足开发、测试和生产环境的不同需求。