1

我想在其他项目中使用 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 作为 jar 下载。

请让我知道如何实现它。

4

4 回答 4

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>
于 2017-10-05T13:32:54.750 回答
0

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

于 2017-10-05T12:48:15.603 回答
0

您可以设置一个私有 maven 存储库来托管 jar 文件。更多设置信息可以在https://maven.apache.org/guides/introduction/introduction-to-repositories.html下找到

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

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

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

于 2017-10-05T12:54:03.600 回答
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 中的任何其他依赖项一样访问它。

于 2017-10-05T13:01:03.707 回答