如何不修改pom.xml通过CLI为配置war插件的Maven项目生成jar包
不修改POM仅通过CLI生成Jar包的实现方法
你之前执行的命令不生效核心原因有两个:
- 命令里
-Dpackaging = jar的等号两侧加了空格,Maven无法正确识别这个属性传参 - 就算去掉空格写成
-Dpackaging=jar也没用——POM中硬编码的<packaging>war</packaging>配置优先级高于命令行传入的系统属性,同时绑定的war插件会默认在生命周期package阶段执行war打包逻辑,单靠传packaging参数覆盖不了硬编码配置。
直接执行如下命令即可在不修改POM文件的前提下输出jar包:
mvn clean install -Dmaven.war.skip=true jar:jar
参数说明:
-Dmaven.war.skip=true:跳过maven-war-plugin的全部执行逻辑,阻止war包生成jar:jar:显式触发maven-jar-plugin的打包目标,将编译生成的class文件、项目资源文件打包为标准jar包- 构建完成后生成的jar包会存放在项目的
target目录下,命名规则和POM中配置的构建产物命名规则一致 - 如果需要跳过单元测试环节,可以在命令中追加
-DskipTests参数,不影响最终jar包生成逻辑
注意:该命令生成的是普通项目jar包,不会内嵌项目依赖的第三方包,如果需要生成可执行的fat jar,需要额外在命令中指定maven-shade-plugin或者maven-assembly-plugin的执行目标,不需要修改原POM配置。
内容的提问来源于stack exchange,提问作者gandhi_yash
相关产品推荐
相关产品推荐

