You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Matthew Jaskula (JIRA)" <ji...@codehaus.org> on 2008/12/09 15:33:19 UTC

[jira] Commented: (MINSTALL-30) Command Line parameter 'version' does not override pom file

    [ http://jira.codehaus.org/browse/MINSTALL-30?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=157415#action_157415 ] 

Matthew Jaskula commented on MINSTALL-30:
-----------------------------------------

Here is a simple workaround to allow version numbers from the command line to override the version used by the install and deploy plugins. In our case the continuous integration server is providing the version number, which includes a build number. I didn't test group or artifact ids, but this same scheme may work for them as well.

By using a level of indirection you can pass a version number in to the pom at build time and have the install and deploy plugins use them. For example:


    <project xmlns="..." xmlns:xsi="..." xsi:schemaLocation="...">
      <modelVersion>4.0.0</modelVersion>
      <groupId>org.codehaus</groupId>
      <artifactId>codehaus</artifactId>
      <version>${ciVersion}</version>
      <packaging>jar</packaging>
      
      <properties>
        <ciVersion>0.0.0.0</ciVersion>
      </properties>

      ...

    </project>


We cannot override ${project.version} directly. So instead, we add a second property called 'ciVersion' and give it a default value of '0.0.0.0' in the properties section. Now the CI server can specify a version number by overriding the ciVersion property on the command line. As in:

    mvn -DciVersion=1.0.0.25 install

The install and deploy plugins will use the value of the ciVersion property that was passed in whenever ${project.version} is referenced, as expected, and the default value will be used when no version is provided on the command line.


> Command Line parameter 'version' does not override pom file
> -----------------------------------------------------------
>
>                 Key: MINSTALL-30
>                 URL: http://jira.codehaus.org/browse/MINSTALL-30
>             Project: Maven 2.x Install Plugin
>          Issue Type: New Feature
>    Affects Versions: 2.1
>         Environment: maven 2.0.4
> maven-install-plugin 2.1
>            Reporter: Johan Fischer
>
> Hi, 
> I'm trying to override the version number in the pom using the CLI params -Dversion but the install plugin still uses the pom version creating a mismatched of the installed jar file:
> example:
> pom version: SHIP_VERSION 
> {noformat}
> $ mvn -X -Dversion=1.4.1_2 install
>  Error stacktraces are turned on.
> Maven version: 2.0.4
> [DEBUG] Building Maven user-level plugin registry from: '/home/jfischer/.m2/plugin-registry.xml'
> [DEBUG] Building Maven global-level plugin registry from: '/opt/maven/conf/plugin-registry.xml'
> [INFO] Scanning for projects...
> [DEBUG] Searching for parent-POM: cmss:parent::1.0.0-SNAPSHOT of project: cmss-libs:cmcrc-favlib:jar:SHIP_VERSION in relative path: ../pom.xml
> [DEBUG] Parent-POM: cmss:parent::1.0.0-SNAPSHOT not found in relative path: ../pom.xml
> [DEBUG] Retrieving parent-POM: cmss:parent::1.0.0-SNAPSHOT for project: cmss-libs:cmcrc-favlib:jar:SHIP_VERSION from the repository.
> [DEBUG] Skipping disabled repository central
> [DEBUG] parent: resolved to version 1.0.0-20060516.064917-2 from repository cmss
> [INFO] ----------------------------------------------------------------------------
> [INFO] Building Java SMARTS lib
> [INFO]    task-segment: [install]
> [INFO] ----------------------------------------------------------------------------
> <--- snip --->
> DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-compiler-plugin:2.0.1:compile' -->
> [DEBUG]   (f) basedir = /home/jfischer/cmcrc/cmss/libs/favlib
> [DEBUG]   (f) buildDirectory = /home/jfischer/cmcrc/cmss/libs/favlib/target
> [DEBUG]   (f) classpathElements = [/home/jfischer/cmcrc/cmss/libs/favlib/target/classes, /home/jfischer/.m2/repository/cmss-libs/jelte-util/1.0.0/jelte-util-1.0.0.j
> ar]
> [DEBUG]   (f) compileSourceRoots = [/home/jfischer/cmcrc/cmss/libs/favlib/src/main/java]
> [DEBUG]   (f) compilerId = javac
> [DEBUG]   (f) debug = true
> [DEBUG]   (f) fork = false
> [DEBUG]   (f) optimize = false
> [DEBUG]   (f) outputDirectory = /home/jfischer/cmcrc/cmss/libs/favlib/target/classes
> [DEBUG]   (f) outputFileName = cmcrc-favlib-1.4.1_2
> [DEBUG]   (f) projectArtifact = cmss-libs:cmcrc-favlib:jar:SHIP_VERSION
> [DEBUG]   (f) showDeprecation = false
> [DEBUG]   (f) showWarnings = false
> [DEBUG]   (f) staleMillis = 0
> [DEBUG]   (f) verbose = false
> [DEBUG] -- end configuration --
> <--- snip --->
> [DEBUG] org.apache.maven.plugins:maven-install-plugin:maven-plugin:2.1:runtime (selected for runtime)
> [DEBUG]   org.apache.maven:maven-plugin-api:jar:2.0:runtime (selected for runtime)
> [DEBUG]   org.apache.maven:maven-project:jar:2.0:runtime (selected for runtime)
> [DEBUG]     org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-8:runtime (selected for runtime)
> [DEBUG]       junit:junit:jar:3.8.1:runtime (selected for runtime)
> [DEBUG]       org.codehaus.plexus:plexus-utils:jar:1.0.4:runtime (selected for runtime)
> [DEBUG]       classworlds:classworlds:jar:1.1-alpha-2:runtime (selected for runtime)
> [DEBUG]     org.apache.maven:maven-profile:jar:2.0:runtime (selected for runtime)
> [DEBUG]       org.apache.maven:maven-model:jar:2.0:runtime (selected for runtime)
> [DEBUG]     org.apache.maven:maven-model:jar:2.0:runtime (selected for runtime)
> [DEBUG]     org.apache.maven:maven-artifact-manager:jar:2.0:runtime (selected for runtime)
> [DEBUG]       org.apache.maven.wagon:wagon-provider-api:jar:1.0-alpha-5:runtime (selected for runtime)
> [DEBUG]       org.apache.maven:maven-artifact:jar:2.0:runtime (selected for runtime)
> [DEBUG]       org.apache.maven:maven-repository-metadata:jar:2.0:runtime (selected for runtime)
> [DEBUG]     org.apache.maven:maven-artifact:jar:2.0:runtime (selected for runtime)
> [DEBUG]     org.codehaus.plexus:plexus-utils:jar:1.0.4:runtime (selected for runtime)
> [DEBUG]   org.apache.maven:maven-artifact:jar:2.0:runtime (selected for runtime)
> [DEBUG]   org.apache.maven:maven-artifact-manager:jar:2.0:runtime (selected for runtime)
> [DEBUG]     org.apache.maven.wagon:wagon-provider-api:jar:1.0-alpha-5:runtime (selected for runtime)
> [DEBUG]     org.apache.maven:maven-repository-metadata:jar:2.0:runtime (selected for runtime)
> [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-install-plugin:2.1:install' -->
> [DEBUG]   (f) artifact = cmss-libs:cmcrc-favlib:jar:SHIP_VERSION
> [DEBUG]   (f) attachedArtifacts = []
> [DEBUG]   (f) localRepository = [local] -> file:///home/jfischer/.m2/repository
> [DEBUG]   (f) packaging = jar
> [DEBUG]   (f) pomFile = /home/jfischer/cmcrc/cmss/libs/favlib/pom.xml
> [DEBUG] -- end configuration --
> [INFO] [install:install]
> [INFO] Installing /home/jfischer/cmcrc/cmss/libs/favlib/target/cmcrc-favlib-1.4.1_2.jar to /home/jfischer/.m2/repository/cmss-libs/cmcrc-favlib/SHIP_VERSION/cmcrc-f
> avlib-SHIP_VERSION.jar
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD SUCCESSFUL
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 10 seconds
> [INFO] Finished at: Wed Aug 02 12:36:09 GMT+10:00 2006
> [INFO] Final Memory: 4M/9M
> [INFO] ------------------------------------------------------------------------
> {noformat}
> As you can see, the install plugin installed the built jar file 1.4.2_2 to the local repos version=SHIP_VERSION......
> Looking at the trunk code: http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallFileMojo.java
> this makes perfect sense as if the pom file exists, it reads the version from there and skip CLI parsing as requested in MINSTALL-21. So would be nice to read first the pom, and then allow the CLI to override this. I don't know if you want to allow overriding the groupId and artifactId (I just looked at the version case).
> Cheers.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira