Andreas Schaller created MRELEASE-923:
-----------------------------------------
Summary: mvn release:prepare-with-pom doesn't replace SNAPSHOTs
defined in a SNAPSHOT parent
Key: MRELEASE-923
URL: https://issues.apache.org/jira/browse/MRELEASE-923
Project: Maven Release Plugin
Issue Type: Bug
Components: prepare-with-pom
Affects Versions: 2.5.2
Reporter: Andreas Schaller
If I use a SNAPSHOT version of a plugin within a parent pom that is also a
SNAPSHOT, the mvn release:prepare-with-pom can't replace it with its released
version.
I'm asked:
There are still some remaining snapshot dependencies.
: Do you want to resolve them now? (yes/no) no: : yes
Dependency type to resolve,: specify the selection number ( 0:All 1:Project
Dependencies 2:Plugins 3:Reports 4:Extensions ): (0/1/2/3) 1: :
Dependency 'my.group:my.dependency' is a snapshot (1.0.0-SNAPSHOT)
: Which release version should it be set to? 1.0.0: :
What version should the dependency be reset to for development? 1.0.0: :
1.0.1-SNAPSHOT
Dependency 'my.group:my.parent' is a snapshot (1.0.0-SNAPSHOT)
: Which release version should it be set to? 1.0.0: :
What version should the dependency be reset to for development? 1.0.0: :
1.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 40.211s
[INFO] Finished at: Wed Sep 23 13:35:33 CEST 2015
[INFO] Final Memory: 17M/157M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-release-plugin:2.5.2:prepare-with-pom
(default-cli) on project my.project: Can't release project due to non released
dependencies :
[ERROR] my.group:my.maven.plugin:maven-plugin:1.0.0-SNAPSHOT:runtime
Example parent pom:
<project>
<groupId>my.group</groupId>
<artifactId>my.parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<profiles>
<profile>
<id>java-packaging-tools</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>my.group</groupId>
<artifactId>my.maven.plugin</artifactId>
<version>1.0.0-SNAPSHOT</version>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
Example project pom:
<project>
<groupId>my.group</groupId>
<artifactId>my.project</artifactId>
<version>1.0.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>my.group</groupId>
<artifactId>my.dependency</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
So first of all, why are the transitive dependencies resolved before the parent?
And now the issue: in the released version of my.parent (1.0.0) there is also
the released version of my.maven.plugin (1.0.0) so why is the
relase:prepare-with-pom failing?
If I manually set the parent version to 1.0.0 before I run mvn
relase:prepare-with-pom everything works fine as expected.
Also I when use the option "Dependency type to resolve,: specify the selection
number ( 0:All 1:Project Dependencies 2:Plugins 3:Reports 4:Extensions ):
(0/1/2/3) 1: : 0" I'm asked for the relese version of the my.maven.plugin and
can perform the release as expected.
And a last question: why is the default answer for the "What version should the
dependency be reset to for development?" question always the released version
and not the next SNAPSHOT version?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)