我正在使用minijar-maven-plugin来减小jar-with-dependencies jar的大小,但我需要指定一个mainClass,就像我可以使用maven程序集插件轻松完成。如何在仍然使用minijar插件时指定清单中的mainClass?
我的minijar配置是默认配置:
<plugin>
<artifactId>minijar-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>ueberjar</goal>
</goals>
<configuration>
<includeArtifact>true</includeArtifact>
<stripUnusedClasses>false</stripUnusedClasses>
<includeDependencies>
<param>org.vafer:dependency</param>
</includeDependencies>
<includeDependenciesInRelocation>
<param>org.vafer:dependency</param>
</includeDependenciesInRelocation>
</configuration>
</execution>
</executions>
</plugin>
我可以使用:
在maven程序集插件中指定主类 <plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.chheng.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
答案 0 :(得分:3)
你应该试试maven shade插件。它更好地处理元数据,并且还负责依赖内联。
我已经弃用了minijar插件而不是added support用于相同的优化到maven shade插件。
观看/投票this issue以使其得到应用。
答案 1 :(得分:0)
已请求此信息 - 请参阅此executable uberjar主题和MOJO-852 - 但仍不支持。鉴于此问题现已开放超过3年,我不希望快速解决(除非您提交补丁)。
我不太了解minijar插件,我实际上从未使用过它......但是如果你配置jar插件来生成一个带有主jar的main-class条目的清单会怎么样?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<!--addClasspath>true</addClasspath-->
<mainClass>my.main.Class</mainClass>
</manifest>
</archive>
</configuration>
</plugin>