首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用maven阴影插件安装über jar

用maven阴影插件安装über jar
EN

Stack Overflow用户
提问于 2020-03-26 07:55:00
回答 2查看 490关注 0票数 2

我一直在使用maven程序集插件来创建uber jar并部署到Artifactory。我切换到maven阴影插件来遮挡一些依赖项。现在,我的jar没有在安装阶段部署。

在maven程序集插件文档中:

在创建程序集时,它将使用assemblyId作为工件的分类器,并将创建的程序集附加到项目,以便在安装和部署阶段将其上载到存储库中。

这不是阴影插件的情况。如何配置maven pom来部署用阴影插件创建的uber jar?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-26 08:28:01

您必须告诉要附加的maven-阴影插件可以通过以下方法完成的阴影伪影:

代码语言:javascript
复制
<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>
票数 3
EN

Stack Overflow用户

发布于 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(在本例中,这不是我想要的,因为我正在构建一个带有某些依赖项的库)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60862915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档