簡體   English   中英

從分類器構建的 Maven 依賴項中排除某些.jars

[英]Excluding certain .jars from a Maven dependency from build by classifier

我的項目包括 nd4j-native-platform 依賴項,其中包括.jars for windows、linux 和 mac。 該應用程序是在 windows/mac 機器上開發的,然后部署到 Linux,所以我想通過排除這些其他平台 jars 來節省部署空間,這些平台在構建.war 時占用 > 400 MB。 Tl;博士,我想排除所有不以linux-x86_64結尾的.jars。

pom中的依賴:

<dependency>
    <groupId>org.nd4j</groupId>
    <artifactId>nd4j-native-platform</artifactId>
    <version>1.0.0-beta7</version>
    <classifier>linux-x86_64</classifier>
</dependency>

我看不到任何方法可以通過依賴標記中的分類器排除它們,看來您只能通過 groupId 和 artifactId 排除。 我還嘗試在 .war 插件中使用 PackagingExcludes 和 warSourceExcludes,但這並沒有做任何事情:

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.2.3</version>
    <configuration>
        <packagingExcludes>
            WEB-INF/lib/nd4j-native-1.0.0-beta7-windows-x86_64.jar,
            WEB-INF/lib/nd4j-native-1.0.0-beta7-android-x86.jar,
            WEB-INF/lib/nd4j-native-1.0.0-beta7-macosx-x86_64.jar,
            WEB-INF/lib/nd4j-native-1.0.0-beta7-android-x86_64.jar,
            WEB-INF/lib/nd4j-native-1.0.0-beta7-linux-ppc64le.jar,
            WEB-INF/lib/nd4j-native-1.0.0-beta7-android-arm64.jar,
            WEB-INF/lib/nd4j-native-1.0.0-beta7-android-arm.jar,
            WEB-INF/lib/openblas-0.3.9-1-1.5.3-windows-x86_64.jar,
            WEB-INF/lib/nd4j-native-1.0.0-beta7-linux-armhf.jar,
            WEB-INF/lib/openblas-0.3.9-1-1.5.3-windows-x86.jar,
            WEB-INF/lib/openblas-0.3.9-1-1.5.3-windows-x86.jar,
            WEB-INF/lib/openblas-0.3.9-1-1.5.3-linux-armhf.jar,
            WEB-INF/lib/openblas-0.3.9-1-1.5.3-linux-ppc64le.jar,
            WEB-INF/lib/openblas-0.3.9-1-1.5.3-linux-arm64.jar
        </packagingExcludes>
    </configuration>
</plugin>

使用 Maven 3.6.3。

對於大多數使用 JavaCPP 的東西來說,處理這個問題的正確方法是設置javacpp.platform屬性。

使用mvn -Djavacpp.platform=linux-x86_64構建時,您將只獲得該特定平台,而沒有其他任何東西。 這也適用於所有其他傳遞依賴,例如 opencv。

您可以嘗試運行mvn -Djavacpp.platform=linux-x86_64 dependency:tree以查看它是否有效。

暫無
暫無

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

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