【发布时间】:2020-05-08 14:18:06
【问题描述】:
我在构建可运行的 jar(包含我需要的所有依赖项)时遇到问题。我可以构建一个包含所有依赖项的 jar 包,它可以工作但速度很慢(我使用 Eclipse Export 构建了它)。我尝试使用 maven-assembly-plugin。
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>${mainClass}</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
这将创建一个包含所有未打包依赖项的 Jar。问题是生成的 jar 在我运行它时会引发错误(我的代码中出现空指针异常,这似乎是由其中一个包含的库中的工厂类返回 NULL 引起的)。
问题似乎是,当一个依赖 jar 被解包以包含在我的 jar 中时,出现了问题(因此出现错误)。我想将该 jar 打包,但仍将它放在我的可运行 jar 中。
有没有办法选择性地包含打包的 Jar(或就此包括所有打包的 jar)?
【问题讨论】:
-
您想在打包时排除其中一个依赖的jar(所有依赖包),但不想从pom中排除它?
-
问题似乎是,当一个依赖的 jar 被解包以包含在我的 jar 中时,出现了问题(因此出现错误)。我想将该 jar 打包,但仍将它放在我的可运行 jar 中
标签: java maven executable-jar maven-assembly-plugin maven-shade-plugin