java - Maven Shadow 插件打包项目后,目标中未找到任何 Shadowed jar

标签 java maven-shade-plugin

运行mvn package:shade shade时,日志中的条目显示:用 XYZ-shaded.jar 替换 XYZ.jar 但在我的目标目录中,我找不到阴影 jar enter image description here

这是我关于 Maven 阴影的 pom

enter image description here

经过尝试,这个 pom 帮助了我

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.1.1</version>
        <configuration>
            <filters>
                <filter>
                    <artifact>*:*</artifact>
                    <excludes>
                        <exclude>META-INF/*.SF</exclude>
                        <exclude>META-INF/*.DSA</exclude>
                        <exclude>META-INF/*.RSA</exclude>
                    </excludes>
                </filter>
            </filters>
        </configuration>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <shadedArtifactAttached>true</shadedArtifactAttached>
                    <shadedClassifierName>shaded</shadedClassifierName>
                    <transformers>
                        <transformer
                            implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                            <resource>reference.conf</resource>
                        </transformer>
                        <transformer
                            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            <manifestEntries>
                                <Main-Class>akkaexample.Akkmain</Main-Class>
                            </manifestEntries>
                        </transformer>
                        <transformer
                            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            <mainClass>akkaexample.Akkmain</mainClass>
                        </transformer>
                    </transformers>
                </configuration>
            </execution>
        </executions>
    </plugin>

最佳答案

检查一下输出的 jar 文件是否是阴影文件吗?

Shade 插件可能替换此处的原始文件,这意味着用着色版本覆盖它。

如果您希望最后获得两个 jar 文件(着色和未着色),您可能需要将 shadedArtifactAttached 属性设置为 true:

Defines whether the shaded artifact should be attached as classifier to the original artifact. If false, the shaded jar will be the main artifact of the project

参见Maven Shade Mojo Documentation.

关于java - Maven Shadow 插件打包项目后,目标中未找到任何 Shadowed jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49870570/

相关文章:

java - 在 JBOSS 7 中部署 Struts 2 项目

Java:棘手的替换字符串

java - maven-shade-插件 : make a jar whereas we are in war Project?

maven - 如何在 maven 中引用阴影 jar

java - 排除包含在 Shaded Jar 中的类

maven - 同时使用 maven-flatten-plugin 和 maven-shade-plugin

java - 如何在我的 Android 应用中实现 7 天免费试用期的年度订阅状态为 'account hold'?

java - DOS 子字符串和变量

java - 如何在 Spring MVC 中返回 403 Forbidden?

java - 如何阻止 maven-shade-plugin 阻止 opensaml-impl 类型的 java.util.ServiceLoader 初始化