运行mvn package:shade shade
时,日志中的条目显示:用 XYZ-shaded.jar 替换 XYZ.jar
但在我的目标目录中,我找不到阴影 jar
这是我关于 Maven 阴影的 pom
经过尝试,这个 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
关于java - Maven Shadow 插件打包项目后,目标中未找到任何 Shadowed jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49870570/