релиз maven: подготовьте не развертывать проекты с релизной версией - PullRequest
4 голосов
/ 14 февраля 2011

У меня плоская структура проекта с несколькими проектами. Я использую Nexus для внутреннего репозитория и SVN для управления исходным кодом. Я могу развернуть SNAPSHOT сборку моего проекта.

В моем родительском ПОМ я добавил плагин Maven Release:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-release-plugin</artifactId>
  <version>2.1</version>
</plugin>

и информация о распространении:

<distributionManagement>
  <repository>
    <id>releases</id>
    <url>http://localhost:8081/nexus/content/repositories/releases</url>
  </repository>
  <snapshotRepository>
    <id>snapshots</id>
    <name>Internal Snapshots</name>
    <url>http://localhost:8081/nexus/content/repositories/snapshots</url>
  </snapshotRepository>
</distributionManagement>

Когда я делаю mvn release:prepare, артефакты с релизными версиями не будут развернуты в репо. Поэтому, если у меня есть проект A с зависимостью от проекта B. Проект A не может получить артефакт B с помощью версии выпуска.

1 Ответ

10 голосов
/ 29 марта 2011

Релиз: подготовьте по умолчанию вызовы «очистить» и «проверить» цели, которые просто пытаются скомпилировать и запустить тест.Таким образом, ничего не развернуто в вашем удаленном хранилище и не установлено в вашем локальном хранилище.Для обработки зависимостей в многомодульных проектах с новой версией выпуска необходимо, чтобы во время выпуска были установлены объекты в локальном репозитории: prepare, поэтому измените цели по умолчанию на «clean» и «install» со ​​свойством prepareGoals.

<plugin>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.1</version>
    <configuration>
       <preparationGoals>clean install</preparationGoals>
    </configuration>
</plugin>

Вы можете добавить любые цели, которые вам понадобятся во время сборки.

Фактическое развертывание в удаленном хранилище будет выполнено в выпуске: выполнить цель.

Laurent

...