我一直在使用maven程序集插件来创建uber jar并部署到Artifactory。我切换到maven阴影插件来遮挡一些依赖项。现在,我的jar没有在安装阶段部署。
在maven程序集插件文档中:
在创建程序集时,它将使用assemblyId作为工件的分类器,并将创建的程序集附加到项目,以便在安装和部署阶段将其上载到存储库中。
这不是阴影插件的情况。如何配置maven pom来部署用阴影插件创建的uber jar?
发布于 2020-03-26 08:28:01
您必须告诉要附加的maven-阴影插件可以通过以下方法完成的阴影伪影:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>jackofall</shadedClassifierName> <!-- Any name that makes sense -->
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>发布于 2021-04-15 16:51:45
我也遇到了这个问题,mvn install会在我的目标目录中构建一个阴影的jar,但是将非阴影的jar安装到本地Maven存储库中。
最终被证明是因为我在maven的阴影插件配置中定义了<finalName>。这样做的结果是以该特定名称保存阴影jar,而非阴影jar则采用默认jar名称,mvn install在安装时必须查找默认jar名称。在没有<finalName>存在的情况下,它将阴影的jar适当地复制到本地Maven存储库中。
使用<shadedArtifactAttached>,我可以安装阴影的jar,但是只有shadedClassifierName后缀,而非阴影的jar以正常的工件名称出现,这导致依赖于它的库在阴影的jar上选择非阴影的jar(在本例中,这不是我想要的,因为我正在构建一个带有某些依赖项的库)。
https://stackoverflow.com/questions/60862915
复制相似问题