Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-3070

${x} properties no longer expanded in </version> tag after 2.0.3

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Incomplete
    • 2.0.7
    • None
    • None
    • None

    Description

      I was experimenting with maven using killer-app sample (http://www.sonatype.com/book/examples/book-killerapp.zip) from Sonatipe book (http://www.sonatype.com/book/index.html) and immediately hit a show stopper.
      Maven 2.0.3 is able to build the sample out of the box, but any later version up to 2.0.7 chokes telling that it's not able to find the parent project:

      C:\home\prjHome\mavenTest\killerapp>mvn help:effective-pom
      [INFO] Scanning for projects...
      [INFO] ------------------------------------------------------------------------
      [ERROR] FATAL ERROR
      [INFO] ------------------------------------------------------------------------
      [INFO] Failed to resolve artifact.

      GroupId: com.training.killerapp
      ArtifactId: killerapp
      Version: 1.0-SNAPSHOT

      Reason: Unable to download the artifact from any repository

      com.training.killerapp:killerapp:pom:1.0-SNAPSHOT

      from the specified remote repositories:
      central (http://repo1.maven.org/maven2)

      [INFO] ------------------------------------------------------------------------
      [INFO] Trace
      org.apache.maven.reactor.MavenExecutionException: Cannot find parent: com.training.killerapp:killerapp for project: null:killerapp-model:jar:null for project null:killerapp-model:jar:null
      at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:378)
      at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:290)
      at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125)
      at org.apache.maven.cli.MavenCli.main(MavenCli.java:280)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
      at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
      at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
      at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

      All the problems looks to be caused by the fact that the root POM has the following construct (that should be perfectly legal) in it:
      <version>${killerappVersion}</version>

      <properties>
      <killerappVersion>1.0-SNAPSHOT</killerappVersion>
      </properties>

      If i substitute the version tag in the root POM with the following everything works with all versions.
      <version>1.0-SNAPSHOT</version>

      I was not able to find anywhere in the doc that ${x} substitution is no longer legal in </version> tag, so i think this is a regression from 2.0.3.

      Btw, all the test were done with clean local repository.

      Attachments

        Issue Links

          Activity

            People

              jdcasey John Dennis Casey
              garu Gabriele Garuglieri
              Votes:
              15 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: