Details
-
Type:
New Feature
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 2.1
-
Fix Version/s: None
-
Component/s: install:install
-
Labels:None
-
Environment:maven 2.0.4
maven-install-plugin 2.1
-
Number of attachments :
Description
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
$ 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] ------------------------------------------------------------------------
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.
Issue Links
- relates to
-
MINSTALL-37
Add support to force install:install to use a specific version
-
I have a use case that need to have overridable groupid and artifactid, etc
I would like to use a pom file to deploy/install a bunch of thirdparty jars into my internal remote repo. The pom execute install:install-file mutliple times.
The advantage of the approach is it not OS dependent.
The below pom throws this errror
[INFO] Error configuring: org.apache.maven.plugins:maven-install-plugin. Reason:
ERROR: Cannot override read-only parameter: artifactId in goal: install:install-file
here is the pom
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.java.jaxws.ri</groupId>
<artifactId>jaxws-ri-deployer</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>jaxws-ri deployer</name>
<build>
<defaultGoal>package</defaultGoal>
<plugins>
{jaxws.ri.version}<plugin>
<artifactId>maven-install-plugin</artifactId>
<configuration>
<groupId>net.java.jaxws.ri</groupId>
<version>$
</version>
<generatePom>true</generatePom>
<packaging>jar</packaging>
</configuration>
<executions>
<execution>
<id>http.jar</id>
<goals>
<goal>install-file</goal>
</goals>
<phase>package</phase>
<configuration>
<artifactId>http</artifactId>
<file>httpd.jar</file>
</configuration>
</execution>
<execution>
<id>resolver.jar</id>
<goals>
<goal>install-file</goal>
</goals>
<phase>package</phase>
<configuration>
<artifactId>resolver</artifactId>
<file>resolver.jar</file>
</configuration>
</execution>
.......
</executions>
</plugin>
</plugins>
</build>
<properties>
<jaxws.ri.version>2.1-EA3</jaxws.ri.version>
</properties>
</project>