如何将uber jar依赖项下载到特定的本地位置/文件夹?

时间:2019-09-30 15:46:06

标签: java maven

使用shade im将uberjar上传到仓库:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.2.1</version>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>shade</goal>
        </goals>
        <configuration>
          <shadedArtifactAttached>true</shadedArtifactAttached>
          <shadedClassifierName>myjar</shadedClassifierName>
        </configuration>
      </execution>
    </executions>
  </plugin>

然后,我有另一个需要访问该jar的应用程序。我正计划仅在其他应用程序存储库中安装pom,并部署调用mvn install或用于在本地下载uber jar的部署脚本。我不确定如何下载uber jar。

当我运行mvn install时,此POM在目标文件夹中创建一个blahblah-1.jar。我想要的是将uber jar下拉到特定目录。如何在pom配置中执行此操作?我不想将特定的参数传递给mvn-我希望配置位于pom中,因此我可以执行类似mvn install的操作,它将uber jar依赖关系下拉到正确的目录中。我想对所有设置都使用pom,因为这意味着我的CI \ CD服务器只需要为其他应用程序调用相同的命令,而这些设置将位于pom中

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>derps</groupId>
  <artifactId>blahblah</artifactId>
  <version>1</version>

  <!-- Retrieve artifacts from internal repo -->
  <repositories>
    <repository>
      <id>myrepo</id>
      <name>my repo</name>
      <url>https://myrepo</url>
    </repository>
  </repositories>

  <dependencies>
    <dependency>
      <groupId>com.mycompany.app</groupId>
      <artifactId>my-app</artifactId>
      <version>1.0-SNAPSHOT</version>
      <classifier>myjar</classifier>
    </dependency>
  </dependencies>

</project>

1 个答案:

答案 0 :(得分:1)

您可以使用Maven依赖插件在特定文件夹中复制依赖项:

https://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html