簡體   English   中英

Maven:從 JAR 中排除“META-INF/maven”文件夾

[英]Maven: Exclude “META-INF/maven” folder from JAR

我使用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>

我讀到使用exclude標簽可以排除某些內容,但它不起作用。 也許這僅指本地文件/文件夾? maven文件夾不是源的一部分,它只是由Maven添加的。

這個答案是有效的,但使用了不同的工件,因此當我將它粘貼到我的pom.xml時會生成第二個JAR 我想使用我當前的構建代碼並排除如上所述的maven文件夾。 如何使用maven構建規則來完成?

maven-jar-plugin使用maven-archiver來處理打包。 它提供了配置addMavenDescriptor ,默認為true 將其設置為false應刪除META-INF/maven目錄。

...
<archive>
   <addMavenDescriptor>false</addMavenDescriptor>
   ....
</archive>

您可以在此處找到參考。

您可以使用 maven shade 插件創建 jar 並使用 pom.xml 文件中的以下配置排除 maven 文件夾:

<profile>
    <id>shade</id>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.4.3</version>
                <executions>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <filters>
                            <filter>
                                <excludes>
                                    <exclude>META-INF/**</exclude>
                                </excludes>
                            </filter>
                        </filters>
                    </configuration>
                </executions>
                ...
</profile>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM