Maven:从JAR中排除"META-INF/maven"文件夹

Bul*_*aza 3 java jar maven

Maven用来建立一个JAR.当我检查时JAR,我在maven文件夹中看到一个文件META-INF夹.我希望它从构建中排除.我当前的构建代码pom.xml如下所示:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>Libraries</classpathPrefix>
                        <mainClass>com.company.Main</mainClass>
                    </manifest>
                    <manifestEntries>
                        <Built-By>Me</Built-By>
                    </manifestEntries>
                </archive>
                <!-- <excludes>
                    <exclude>META-INF/maven/**</exclude>
                </excludes> -->
            </configuration>
        </plugin>
        <!-- ...more plugins... -->
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

我读到使用exclude标签允许你排除某些东西,但它不起作用.也许这只是指本地文件/文件夹?该maven文件夹不是源代码的一部分,它只是添加了Maven.

这个答案有点用,但是使用了不同的工件,因此JAR当我将它粘贴到我的时候会产生第二个pom.xml.我想使用我当前的构建代码并排除上述maven文件夹.如何使用maven构建规则来完成?

f1l*_*1l2 7

maven-jar-plugin用途maven-archiver来处理包装.它提供的配置addMavenDescriptor,它是true通过缺省.将其设置为false应删除META-INF/maven目录.

...
<archive>
   <addMavenDescriptor>false</addMavenDescriptor>
   ....
</archive>
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到参考.