如何将具有相关jar的第三方库部署到Repository

时间:2014-06-04 18:04:07

标签: maven maven-plugin maven-assembly-plugin artifactory

我们有几个第三方lib jar,我想使用依赖的jar部署到Artifactory

因此,当引用第三方jar时,所有相关的jar将由maven自动下载?

例如,xxy-company-api-9.0.jar,这个jar可能需要abc-9.1.jar,commons-lang-1.0.jar等。当POM引用xxy-company工件时,它是否会自动获取所有依赖罐子。可能吗?如何?

注意

我们自己有第三方JAR,我们没有与这些jar相关的源代码项目。我们从供应商,供应商或其他公司获得这些罐子。当我们收到这些罐子时,它会附带相关的罐子等。

目前,我们将所有这些罐装入 libs-release-local 。我们的项目POM必须引用主jar和每个依赖jar。

问题:是否可以仅从存储库中指定主jar,maven将自动从Artifactory中查找所有相关的jar,而无需明确指定POM ???

我正在研究命令 mvn install:install-file 如何为安装文件指定相关的jar?

3 个答案:

答案 0 :(得分:2)

您可以使用assembly-plugin:

How do I put all required JAR files in a library folder inside the final JAR file with Maven?

它可以是另一种方式,在资源中定义路径:

  

<resources>
>    <resource>
>         <directory>${WORKSPACE_PATH}/</directory>
>         <includes>
>              <include>*.jar</include>
>         </includes>
>         <targetPath>lib</targetPath>
>    </resource>
></resources>

答案 1 :(得分:1)

我很惊讶更多的人对这个问题不感兴趣。我现在必须自己处理这件事。这就是我实现它的方式:

  1. 使用the deploy-file mojo将所有jar手动部署到存储库。

    我有21个罐子我需要这样做,所以我把它们放到一个文件夹中并写了一个小程序来生成我需要运行的命令。然后我将它粘贴在控制台中。

  2. 创建我自己的pom,包装为pom。取决于我刚刚部署的所有这些文件。部署这个pom。

  3. 在我的项目中,依赖于这个pom。它将包含所有其他罐子。

答案 2 :(得分:0)

只是configure Artifactory as a sole artifacts provider for your build。完成后,运行您的构建。所有依赖项都将通过Artifactory下载并缓存在那里。