You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Robert Scholte (JIRA)" <ji...@apache.org> on 2015/12/14 23:49:46 UTC

[jira] [Updated] (MRELEASE-923) mvn release:prepare-with-pom doesn't replace SNAPSHOTs defined in a SNAPSHOT parent

     [ https://issues.apache.org/jira/browse/MRELEASE-923?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert Scholte updated MRELEASE-923:
------------------------------------
    Description: 
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:
{noformat}
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
{noformat}
Example parent pom:
{code:xml}
<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>
{code}
Example project pom:
{code:xml}
<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>
{code}
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?

  was:
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?


> 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
>              Labels: build, maven
>
> 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:
> {noformat}
> 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
> {noformat}
> Example parent pom:
> {code:xml}
> <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>
> {code}
> Example project pom:
> {code:xml}
> <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>
> {code}
> 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)