Использование проекта 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/