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

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

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Incomplete
    • Affects Version/s: 2.0.7
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      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

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

                Dates

                • Created:
                  Updated:
                  Resolved: