[ 
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

        

Reply via email to