maven - 使用 maven-shaded-plugin 安装 uber jar

标签 maven maven-assembly-plugin maven-shade-plugin

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

在maven程序集插件文档中:

When the assembly is created it will use the assemblyId as the artifact's classifier and will attach the created assembly to the project so that it will be uploaded into the repository in the install and deploy phase.

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

最佳答案

你必须告诉maven-shade-plugin to attach阴影 Artifact 可以通过以下方式完成:

<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>

关于maven - 使用 maven-shaded-plugin 安装 uber jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60862915/

相关文章:

java - 使用 Maven 阴影重新定位包时 AmazonEc2Client 出现运行时错误

java - Maven Shade 插件不会重新定位公共(public)日志记录

java - Maven 中的定制工作

maven - 仅使用 Jenkins 部署 Tomcat WAR

maven - aspectj-maven-plugin 没有执行?

maven - 在多模块项目中生成聚合 javadoc 时如何避免重复 fork

java - 使用 Maven 部署 AWS 无服务器应用程序时如何设置文件的文件权限

maven - 我可以更改 dir 格式的 maven 程序集的根目录吗?

scala - 使用不同的 Scala 版本生成同一 Maven 项目的两个 jar

java - Maven Assembly 插件 - 包含来自另一个模块的类