【问题标题】:Maven Shade Plugin not attaching shaded artifactMaven Shade 插件未附加阴影工件
【发布时间】:2023-04-01 07:05:02
【问题描述】:

我正在尝试使用 maven-shade-plugin 来区分 Java 6 和 Java 7 工件。我从this link 的理解是,原来的神器将被阴影替换

[INFO] Replacing original artifact with shaded artifact.
[INFO] Replacing /Users/carlos/path/Libraries/xml/target/xml-1.5.0-SNAPSHOT.jar with /Users/carlos/path/Libraries/xml/target/xml-1.5.0-SNAPSHOT-SHADED.jar
[INFO] Replacing original test artifact with shaded test artifact.
[INFO] Replacing /Users/carlos/path/Libraries/xml/target/xml-1.5.0-SNAPSHOT-tests.jar with /Users/carlos/path/Libraries/xml/target/xml-1.5.0-SNAPSHOT-SHADED-tests.jar
[INFO] Dependency-reduced POM written at: /Users/carlos/path/Libraries/xml/dependency-reduced-pom.xml
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ xml ---
[INFO] Installing /Users/carlos/path/Libraries/xml/target/xml-1.5.0-SNAPSHOT.jar to /Users/carlos/.m2/repository/com/company/xml/1.5.0-SNAPSHOT/xml-1.5.0-SNAPSHOT.jar
[INFO] Installing /Users/carlos/path/Libraries/xml/dependency-reduced-pom.xml to /Users/carlos/.m2/repository/com/company/xml/1.5.0-SNAPSHOT/xml-1.5.0-SNAPSHOT.pom
[INFO] Installing /Users/carlos/path/Libraries/xml/target/xml-1.5.0-SNAPSHOT-tests.jar to /Users/carlos/.m2/repository/com/company/xml/1.5.0-SNAPSHOT/xml-1.5.0-SNAPSHOT-tests.jar
[INFO] Installing /Users/carlos/path/Libraries/xml/target/xml-1.5.0-SNAPSHOT-sources.jar to /Users/carlos/.m2/repository/com/company/xml/1.5.0-SNAPSHOT/xml-1.5.0-SNAPSHOT-sources.jar
[INFO] Installing /Users/carlos/path/Libraries/xml/target/xml-1.5.0-SNAPSHOT-tests.jar to /Users/carlos/.m2/repository/com/company/xml/1.5.0-SNAPSHOT/xml-1.5.0-SNAPSHOT-tests.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 23.724 s
[INFO] Finished at: 2015-02-19T15:53:50-05:00
[INFO] Final Memory: 22M/631M
[INFO] ------------------------------------------------------------------------

但是,它是在没有 SHADED 分类器的情况下安装的。这是我的阴影插件配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <shadeTestJar>true</shadeTestJar>
                <shadedClassifierName>SHADED</shadedClassifierName>
            </configuration>
        </execution>
    </executions>
</plugin>

谁能告诉我如何让它与正确的分类器一起安装?另外,我使用它而不是 maven-jar-plugin 因为我还需要能够对测试 jar 进行分类。

【问题讨论】:

    标签: maven maven-shade-plugin


    【解决方案1】:

    您在插件配置中缺少&lt;shadedArtifactAttached&gt;true&lt;/shadedArtifactAttached&gt;。没有它,阴影 jar 将仍然是您项目的主要工件,因此不会应用分类器(因为主要工件没有分类器)。

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.3</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <shadeTestJar>true</shadeTestJar>
                    <shadedClassifierName>SHADED</shadedClassifierName>
                    <shadedArtifactAttached>true</shadedArtifactAttached>
                </configuration>
            </execution>
        </executions>
    </plugin>  
    

    【讨论】:

    • 但这也创建了原始工件。所以两者都安装了。我只需要部署分类版本。我需要重命名或“遮蔽”原始工件,否则我将双重创建所有 jar。
    • 不可能有一个主要的 Maven 工件的分类器。见this。此外,你为什么要这样做?分类器用于向项目添加其他工件,例如其源代码或 javadoc。
    • 我需要遮蔽 maven-jar-plugin 创建的测试以区分其 Java 版本,但我也不想创建未分类的 jar。你知道我该怎么做吗?
    • 正如我所说,您不能使用分类器创建主要工件。要区分不同的JDK版本,请参阅this answer
    • 这不适用于 maven jar 插件。 test-jar 不支持分类器
    猜你喜欢
    • 2017-06-02
    • 1970-01-01
    • 2012-03-06
    • 2015-07-29
    • 1970-01-01
    • 2013-11-17
    • 2016-07-17
    • 2018-10-13
    • 2021-05-01
    相关资源
    最近更新 更多