如果我想使用jar实用程序创建没有META-INF废话的jar文件,则可以传递-M开关,它将:
-M do not create a manifest file for the entries
请注意,这是jar实用程序的功能。如果使用它,我将得到一个没有META-INF文件夹的jar文件,其中包含MANIFEST,基本上只是一个jar类型的存档,其中包含我放入的任何文件/目录。
我该如何使用maven-jar-plugin?我需要这样做以符合另一个过程。 (他们希望jar具有非常特定的文件/文件夹布局,并且jar文件的根目录中不能有META-INF文件夹。)
我已经配置好了,可以正确地创建jar文件,而且我不想弄乱另一个插件...
最佳答案
您可以使用maven-shade-plugin
达到所需的效果:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<includes>
<include>${project.groupId}:${project.artifactId}</include>
</includes>
</artifactSet>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
该配置过滤掉META-INF目录,并且仅包括当前项目,因此不附加依赖项。