将Java项目用作其他项目中的jar文件作为maven依赖项

时间:2017-10-05 12:43:01

标签: java maven build pom.xml maven-dependency

我希望在其他项目中使用POM.xml将一个maven项目用作依赖项,但几乎没有限制。

My Maven project1是框架项目。我为该项目创建了一个jar文件。该项目将驻留在私人git仓库中。我不想让其他用户公开这个项目来编辑它。

在我的maven project2或maven project3中,我想使用maven project1作为依赖项。应该在运行时将jar文件下载到maven依赖项。

注意:用户在日食中不会有mave project1。

例如:当我将testNG依赖项添加到我的POM.xml时,testNG jar将同样下载到我的项目中,我需要将我的maven project1作为依赖项添加到任何其他maven项目,它应该将project1作为jar下载。

请告诉我如何实现它。

4 个答案:

答案 0 :(得分:1)

你应该能够在你的pom中使用它将你的jar添加到你的本地存储库:

<plugin>
    <executions>
        <execution>
            <id>jarid_to_install</id>
            <phase>package</phase>
            <goals>
                <goal>install-file</goal>
            </goals>
            <configuration>
                <file>resources/jar.jar</file>
                <groupId>com.name</groupId>
                <artifactId>jar</artifactId>
                <version>x.x</version>
                <packaging>jar</packaging>
            </configuration>
        </execution>
    </executions>
</plugin>

安装后,jar可以像任何其他依赖项一样实现。

    <dependency>
        <groupId>com.name</groupId>
        <artifactId>jar</artifactId>
        <version>x.</version>
        <scope>runtime</scope>
    </dependency>

答案 1 :(得分:0)

我猜您应该将项目上传到Maven存储库: https://maven.apache.org/guides/mini/guide-central-repository-upload.html

答案 2 :(得分:0)

您可以设置私有maven存储库来托管jar文件。可以在https://maven.apache.org/guides/introduction/introduction-to-repositories.html

下找到更多设置信息

e.g。使用project1作为依赖项的project2 / project3中的示例pom.xml:

<project>
  ...
  <repositories>
    <repository>
      <id>my-internal-site</id>
      <url>http://myserver/repo</url>
    </repository>
  </repositories>
  ...
</project>

或者只使用JFrog Artifactory来托管任何依赖项:https://www.jfrog.com/open-source/

答案 3 :(得分:0)

您可以使用

mvn install:install-file -DgroupId=projecta -DartifactId=projecta -Dversion=1.0.0 -Dpackaging=jar -Dfile=path to you .jar file here

您可以使用此命令将jar安装到本地m2存储库中,然后使用上面命令中定义的groupid,artifactid和version,像projectB中的任何其他依赖项一样访问它。