2015-10-30 2 views
0

У меня есть мультимодульный проект maven, который я успешно выпустил в прошлом, используя плагин maven-release. Когда я пытаюсь сделать выпуск сейчас, он сообщает, что у меня все еще есть SNAPSHOTS в моих зависимостях. Все SNAPSHOTS принадлежат другим проектам в многомодульном родительском проекте, и у меня есть autoVersionSubmodules = true.Отчет о выпуске нескольких модулей SNAPSHOTS

Project 
| pom.xml  // multimodule pom 
|-BasePOM 
| | pom.xml // This is parent pom to all projects 
|-Proj1 
| | pom.xml 
|-Proj2 
| | pom.xml // contains dependency to Proj1 

Единственная информация, версия в BasePOM/pom.xml и ссылки в каждой из POMS проекта. Зависимости версий осуществляется с помощью $ {} project.version

BasePOM/pom.xml

<groupId>org.something</groupId> 
<artifactId>BasePOM</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>pom</packaging> 

<!--other stuff --> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-release-plugin</artifactId> 
      <version>2.5.3</version> 
      <configuration> 
       <tagBase>${svn_root}/tags</tagBase> 
       <autoVersionSubmodules>true</autoVersionSubmodules> 
       <updateDependencies>true</updateDependencies> 
       <useReleaseProfile>false</useReleaseProfile> 
     </configuration> 
     </plugin> 
    </plugins> 
</build> 

Проект/pom.xml

<parent> 
    <groupId>org.something</groupId> 
    <artifactId>BasePOM</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <relativePath>BasePOM/pom.xml</relativePath> 
</parent> 

<!--other stuff --> 

<modules> 
    <module>BasePOM</module> 
    <module>Proj1</module> 
    <module>Proj2</module> 
</modules> 

proj1/pom.xml

<parent> 
    <groupId>org.something</groupId> 
    <artifactId>BasePOM</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <relativePath>../BasePOM/pom.xml</relativePath> 
</parent> 

<!--other stuff --> 

Proj2/pom.xml

<parent> 
    <groupId>org.something</groupId> 
    <artifactId>BasePOM</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <relativePath>../BasePOM/pom.xml</relativePath> 
</parent> 

<!--other stuff --> 

<dependencies> 
    <dependency> 
     <groupId>${project.groupId}</groupId> 
     <artifactId>Proj1</artifactId> 
     <version>${project.version}</version> 
    </dependency> 
</dependencies> 

Любые мысли о том, почему maven сообщает, что у меня есть «оставшиеся зависимости моментальных снимков»?

ответ

0

Я решил проблему.

Вышеупомянутое использование мультимодуля - это хорошо. У моего фактического кода была зависимость от проекта, который использовался в коде, но был удален. Это означало, что артефакт был в репозитории maven, поэтому мой код был построен отлично. Только когда я попытался сделать релиз, плагин maven-release помечал ошибочную SNAPSHOT как неразрешенную. Поскольку удаленный проект имел аналогичное название для других проектов, я не понимал, что это была ошибка, когда я пытался диагностировать эту проблему.

Я потратил целый день, пытаясь понять, почему плагин maven-release не работал так, как раньше. Примечание для себя: обратите особое внимание на то, что на самом деле говорит сообщение об ошибке, а не то, что вы считаете проблемой.

0

BasePOM не является модулем вашего реактора, поэтому он не зависит от autoVersionSubmodules = true.

+0

Это была опечатка, когда я создал вопрос. Извини за это. Я исправлю это. – Crajor

Смежные вопросы