Подтвердить что ты не робот

Файл Maven POM для установки нескольких сторонних коммерческих библиотек

У меня есть куча проектов, которые зависят от набора коммерческих сторонних библиотек. В настоящее время у нас нет репозитория компании, поэтому я должен установить библиотеки в своем локальном репо.

Запуск mvn install:installFile -Dpackaging=jar -Dfile=<file> -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=<version> для каждого файла довольно утомительный. Может создать файл bat, но есть ли способ сделать это с помощью maven?

Я думаю о проекте для всех банок и одного файла pom со всеми идентификаторами группы, идентификаторами артефакта, версиями и именами файлов, а затем возможностью просто запускать mvn install в этом проекте или что-то в этом направлении.

Возможно ли подобное?


Примечание. Я использую Maven 3, но совместимо решение Maven 2.

4b9b3361

Ответ 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.