这个问题在这里已有答案:
我有一个有多个主要类的maven项目 . 我想从这些项目中生成可运行的Jars(包括所有依赖项) . 我目前有以下构建配置(使用maven.assembly):
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>classpath.to.my.mainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
他们是用maven-assembly来实现这个目标的吗?如果没有,实现目标的最简单方法是什么?
4 回答
我无法以令人满意的方式用
maven-assembly-plugin
解决这个问题,所以我选择了另一种解决方案 . 我使用了onejar-maven-plugin:你能行的 . 你'll need a separate execution for each artifact that you'重新构建(即,给每个自己的id,但你可以将阶段保留为默认值),并且你需要为每个id指定finalName和archive / manifest / mainClass .
如果您没有使用捆绑到jar文件中的任何配置(或任何资源)(例如,Spring Framework自动绑定的配置),则The top answer可以正常工作 .
幸运的是,此解决方案也适用于
maven-shade-plugin
,并且您没有onejar-maven-plugin
的上述问题 .此外,
maven-shade-plugin
正在积极维护,而不是onejar-maven-plugin
,这是炼狱中的googlecode .要指定一个对我非常有帮助的前一个答案,你需要添加阶段包和目标程序集并运行mvn run clean package,pom如下: