微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Maven:从JAR中排除“META-INF / maven”文件夹

我使用 Maven来构建JAR.当我检查JAR时,我在meta-inf文件夹中看到了一个maven文件夹.我希望它从构建中排除.我在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>

我读到使用排除标记允许您排除某些内容,但它不起作用.也许这只是指本地文件/文件夹? maven文件夹不是源代码的一部分,它只是由Maven添加的.

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

解决方法

maven-jar-plugin使用maven-archiver来处理包装.它提供配置addMavendescriptor,认情况下为true.将其设置为false应删除meta-inf / maven目录.

...
<archive>
   <addMavendescriptor>false</addMavendescriptor>
   ....
</archive>

你可以找到参考here.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐