Использование проекта Java в качестве jar-файла в другом проекте в качестве зависимости maven

Я хочу использовать один проект maven в качестве зависимости, используя POM.xml в другом проекте с небольшими ограничениями.

Мой Maven project1 - это каркасный проект. Я создал файл JAR для этого проекта. Этот проект будет находиться в частном репозитории Git. Я не хочу выставлять этот проект другому пользователю для его редактирования.

В моем maven project2 или maven project3 я хочу использовать maven project1 в качестве зависимости. JAR-файл должен быть загружен в maven-зависимости во время выполнения.

Примечание: у пользователя не будет mave project1 в его затмении.

Например: когда я добавляю зависимость testNG в свой файл POM.xml jar testNG будет загружен в мой проект аналогичным образом, мне нужно добавить свой maven project1 как зависимость к любому другому maven-проекту, и он должен загрузить project1 как jar.

Пожалуйста, дайте мне знать, как этого добиться.

4 ответа

Решение

Я думаю, вы должны загрузить свой проект в репозиторий Maven: https://maven.apache.org/guides/mini/guide-central-repository-upload.html

Вы должны иметь возможность добавить этот jar в ваш локальный репозиторий, используя это в вашем pom:

<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>

Ты можешь использовать

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

Вы можете установить jar в свой локальный репозиторий m2 с помощью этой команды, а затем получить к нему доступ, как и к любой другой зависимости в вашем projectB, используя groupid, artifactid и версию, которую вы определили в приведенной выше команде.

Вы можете настроить частный репозиторий Maven для размещения файла JAR. Дополнительную информацию о настройке можно найти по https://maven.apache.org/guides/introduction/introduction-to-repositories.html

Например, пример pom.xml в project2 / project3 с использованием 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/

Другие вопросы по тегам