在其他项目中使用 Java 项目作为 jar 文件作为 maven 依赖项

Using Java project as jar file in other project as maven dependency

我想在其他项目中使用 POM.xml 将一个 Maven 项目作为依赖项,几乎没有限制。

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

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

注意:用户在他的eclipse中不会有mave project1。

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

请告诉我如何实现它。

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

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

下找到更多设置信息

例如project2 / project3 中使用 project1 作为依赖项的示例 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/

您可以使用

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 和版本像访问您项目中的任何其他依赖项一样访问它。

您应该能够在您的 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>