Файл Maven POM для установки нескольких сторонних коммерческих библиотек
У меня есть куча проектов, которые зависят от набора коммерческих сторонних библиотек. В настоящее время у нас нет репозитория компании, поэтому я должен установить библиотеки в своем локальном репо.
Запуск mvn install:installFile -Dpackaging=jar -Dfile=<file> -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=<version>
для каждого файла довольно утомительный. Может создать файл bat, но есть ли способ сделать это с помощью maven?
Я думаю о проекте для всех банок и одного файла pom со всеми идентификаторами группы, идентификаторами артефакта, версиями и именами файлов, а затем возможностью просто запускать mvn install
в этом проекте или что-то в этом направлении.
Возможно ли подобное?
Примечание. Я использую Maven 3, но совместимо решение Maven 2.
Ответы
Ответ 1
Недавно было обнаружено новое решение. В основном вы можете создать локальный репозиторий в проекте, который может быть проверен вместе с остальной частью исходного кода. Сообщается об этом здесь: http://www.geekality.net/?p=2376.
Суть заключается в развертывании зависимостей с папкой в вашем проекте.
mvn deploy:deploy-file
-Durl=file:///dev/project/repo/
-Dfile=somelib-1.0.jar
-DgroupId=com.example
-DartifactId=somelib
-Dpackaging=jar
-Dversion=1.0
И затем просто сообщите Maven об этом и используйте объявления зависимостей, как обычно, через pom.xml
.
<repositories>
<repository>
<id>project.local</id>
<name>project</name>
<url>file:${project.basedir}/repo</url>
</repository>
</repositories>
<dependency>
<groupId>com.example</groupId>
<artifactId>somelib</artifactId>
<version>1.0</version>
</dependency>
Не очень Maven'ы, но он работает, и перемещение зависимостей в репозиторий компании позже должно быть довольно простым.
Ответ 2
Вы можете просто создать pom.xml с несколькими версиями install-file цели Maven install plugin. Предполагая, что эти файлы уже доступны локально где-нибудь (или вы можете скачать их с помощью Wagon плагина).
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.somegroup</groupId>
<artifactId>my-project</artifactId>
<version>1.0</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.4</version/>
<executions>
<execution>
<id>install1</id>
<phase>package</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>lib/your-artifact-1.0.jar</file>
<groupId>org.some.group</groupId>
<artifactId>your-artifact</artifactId>
<version>1.0</version>
... other properties
</configuration>
</execution>
<execution>
<id>install2</id>
<phase>package</phase>
<goals>
<goal>install-file</goal>
</goals>
... etc
</execution>
... other executions
</executions>
</plugin>
</plugins>
</build>
</project>
Итак, с вышеописанным фрагментом pom mvn package
должен сделать трюк.
Есть хорошие учебник Maven POM и ссылка POM.