Deploy task should implicitly include install phase ---------------------------------------------------
Key: MANTTASKS-166 URL: http://jira.codehaus.org/browse/MANTTASKS-166 Project: Maven 2.x Ant Tasks Issue Type: Bug Components: deploy task Affects Versions: 2.0.9 Environment: P:\workspace\mvnfix\alfa>java -version java version "1.4.2_16" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_16-b05) Java HotSpot(TM) Client VM (build 1.4.2_16-b05, mixed mode) P:\workspace\mvnfix\alfa>ant -version Apache Ant version 1.7.0 compiled on December 13 2006 P:\workspace\mvnfix\alfa>mvn -version Maven version: 2.0.6 Reporter: Wojciech Gdela Attachments: mvnfix.zip With maven, when you execute {{mvn deploy}} it implicitly executes {{mvn install}}. But with maven-ant, when you execute {{ant}} with target {{artifact:deploy}} it does not execute the install phase. This may cause invalid dependeny resolution. Given alfa/build.xml containing: {code:xml} <target name="deploy"> <mkdir dir="build"/> <echo file="build/alfa-1.0.0-SNAPSHOT.jar">Pretend it's build by ant</echo> <artifact:pom id="mypom" file="pom.xml"/> <artifact:deploy file="build/alfa-1.0.0-SNAPSHOT.jar"> <pom refid="mypom"/> </artifact:deploy> </target> {code} I'm building alfa artifact: {noformat} P:\workspace\mvnfix\alfa>ant deploy Buildfile: build.xml deploy: [artifact:deploy] Deploying to file:///C:/Temp/repo [artifact:deploy] [INFO] Retrieving previous build number from temprepo [artifact:deploy] [INFO] repository metadata for: 'snapshot mvnfix:alfa:1.0.0-SNAPSHOT' could not be found on repository: temprepo, so will be created [artifact:deploy] Uploading: mvnfix/alfa/1.0.0-SNAPSHOT/alfa-1.0.0-20091117.114134-1.jar to temprepo [artifact:deploy] Uploaded 0K [artifact:deploy] [INFO] Retrieving previous metadata from temprepo [artifact:deploy] [INFO] repository metadata for: 'artifact mvnfix:alfa' could not be found on repository: temprepo, so will be created [artifact:deploy] [INFO] Uploading repository metadata for: 'artifact mvnfix:alfa' [artifact:deploy] [INFO] Uploading project information for alfa 1.0.0-20091117.114134-1 [artifact:deploy] [INFO] Retrieving previous metadata from temprepo [artifact:deploy] [INFO] repository metadata for: 'snapshot mvnfix:alfa:1.0.0-SNAPSHOT' could not be found on repository: temprepo, so will be created [artifact:deploy] [INFO] Uploading repository metadata for: 'snapshot mvnfix:alfa:1.0.0-SNAPSHOT' BUILD SUCCESSFUL Total time: 1 second P:\workspace\mvnfix\alfa>ls -l ~/.m2/repository/mvnfix/alfa/1.0.0-SNAPSHOT total 6 -rwxr-xr-x+ 1 wgdela ???????? 25 Nov 17 12:41 alfa-1.0.0-20091117.114134-1.jar -rwxr-xr-x+ 1 wgdela ???????? 672 Nov 17 12:41 alfa-1.0.0-20091117.114134-1.pom -rwxr-xr-x+ 1 wgdela ???????? 344 Nov 17 12:41 maven-metadata-temprepo.xml {noformat} And then beta artifact, that depends on alfa: {noformat} P:\workspace\mvnfix\alfa>cd ../beta P:\workspace\mvnfix\beta>mvn install [INFO] Scanning for projects... [INFO] ---------------------------------------------------------------------------- [INFO] Building Unnamed - mvnfix:beta:jar:1.0.0-SNAPSHOT [INFO] task-segment: [install] [INFO] ---------------------------------------------------------------------------- [INFO] [resources:resources] [INFO] skip non existing resourceDirectory P:\workspace\mvnfix\beta\src\main\resources [INFO] snapshot mvnfix:alfa:1.0.0-SNAPSHOT: checking for updates from temprepo [INFO] [compiler:compile] [INFO] No sources to compile [INFO] [resources:testResources] [INFO] skip non existing resourceDirectory P:\workspace\mvnfix\beta\src\test\resources Downloading: file:///C:/Temp/repo/mvnfix/alfa/1.0.0-SNAPSHOT/alfa-1.0.0-20091117.114134-1.pom 672b downloaded [INFO] [compiler:testCompile] [INFO] No sources to compile [INFO] [surefire:test] [INFO] No tests to run. [INFO] [jar:jar] [WARNING] JAR will be empty - no content was marked for inclusion! [INFO] Building jar: P:\workspace\mvnfix\beta\target\beta-1.0.0-SNAPSHOT.jar [INFO] [install:install] [INFO] Installing P:\workspace\mvnfix\beta\target\beta-1.0.0-SNAPSHOT.jar to ~\.m2\repository\mvnfix\beta\1.0.0-SNAPSHOT\beta-1.0.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 7 seconds [INFO] Finished at: Tue Nov 17 12:43:44 CET 2009 [INFO] ------------------------------------------------------------------------ P:\workspace\mvnfix\beta>ls -l ~/.m2/repository/mvnfix/alfa/1.0.0-SNAPSHOT total 12 -rwxr-xr-x+ 1 wgdela ???????? 25 Nov 17 12:41 alfa-1.0.0-20091117.114134-1.jar -rwxr-xr-x+ 1 wgdela ???????? 672 Nov 17 12:41 alfa-1.0.0-20091117.114134-1.pom -rwxr-xr-x+ 1 wgdela ???????? 25 Nov 17 12:43 alfa-1.0.0-SNAPSHOT.jar -rwxr-xr-x+ 1 wgdela ???????? 672 Nov 17 12:43 alfa-1.0.0-SNAPSHOT.pom -rwxr-xr-x+ 1 wgdela ???????? 344 Nov 17 12:43 maven-metadata-temprepo.xml -rwxr-xr-x+ 1 wgdela ???????? 40 Nov 17 12:43 maven-metadata-temprepo.xml.sha1 {noformat} So far, so good. Then I make some changes in alfa, so I need to build alfa again: {noformat} P:\workspace\mvnfix\beta>cd ../alfa P:\workspace\mvnfix\alfa>ant Buildfile: build.xml deploy: [artifact:deploy] Deploying to file:///C:/Temp/repo [artifact:deploy] [INFO] Retrieving previous build number from temprepo [artifact:deploy] Uploading: mvnfix/alfa/1.0.0-SNAPSHOT/alfa-1.0.0-20091117.114526-2.jar to temprepo [artifact:deploy] Uploaded 0K [artifact:deploy] [INFO] Retrieving previous metadata from temprepo [artifact:deploy] [INFO] Uploading repository metadata for: 'artifact mvnfix:alfa' [artifact:deploy] [INFO] Uploading project information for alfa 1.0.0-20091117.114526-2 [artifact:deploy] [INFO] Retrieving previous metadata from temprepo [artifact:deploy] [INFO] Uploading repository metadata for: 'snapshot mvnfix:alfa:1.0.0-SNAPSHOT' BUILD SUCCESSFUL Total time: 1 second P:\workspace\mvnfix\alfa>ls -l ~/.m2/repository/mvnfix/alfa/1.0.0-SNAPSHOT total 17 -rwxr-xr-x+ 1 wgdela ???????? 25 Nov 17 12:41 alfa-1.0.0-20091117.114134-1.jar -rwxr-xr-x+ 1 wgdela ???????? 672 Nov 17 12:41 alfa-1.0.0-20091117.114134-1.pom -rwxr-xr-x+ 1 wgdela ???????? 32 Nov 17 12:45 alfa-1.0.0-20091117.114526-2.jar -rwxr-xr-x+ 1 wgdela ???????? 672 Nov 17 12:45 alfa-1.0.0-20091117.114526-2.pom -rwxr-xr-x+ 1 wgdela ???????? 25 Nov 17 12:43 alfa-1.0.0-SNAPSHOT.jar -rwxr-xr-x+ 1 wgdela ???????? 672 Nov 17 12:43 alfa-1.0.0-SNAPSHOT.pom -rwxr-xr-x+ 1 wgdela ???????? 344 Nov 17 12:45 maven-metadata-temprepo.xml -rwxr-xr-x+ 1 wgdela ???????? 40 Nov 17 12:45 maven-metadata-temprepo.xml.sha1 {noformat} Take a look at the local repository. The modification time of {{alfa-1.0.0-SNAPSHOT.jar}} is two minutes earlier, than the modificiation time of {{alfa-1.0.0-20091117.114526-2.jar}}. The {{alfa-1.0.0-SNAPSHOT.jar}} file hasn't been changed in this build! Despite this, I'm building beta: {noformat} P:\workspace\mvnfix\alfa>cd ../beta P:\workspace\mvnfix\beta>mvn install [INFO] Scanning for projects... [INFO] ---------------------------------------------------------------------------- [INFO] Building Unnamed - mvnfix:beta:jar:1.0.0-SNAPSHOT [INFO] task-segment: [install] [INFO] ---------------------------------------------------------------------------- [INFO] [resources:resources] [INFO] skip non existing resourceDirectory P:\workspace\mvnfix\beta\src\main\resources [INFO] snapshot mvnfix:alfa:1.0.0-SNAPSHOT: checking for updates from temprepo [INFO] [compiler:compile] [INFO] No sources to compile [INFO] [resources:testResources] [INFO] skip non existing resourceDirectory P:\workspace\mvnfix\beta\src\test\resources Downloading: file:///C:/Temp/repo/mvnfix/alfa/1.0.0-SNAPSHOT/alfa-1.0.0-20091117.114526-2.pom 672b downloaded [INFO] [compiler:testCompile] [INFO] No sources to compile [INFO] [surefire:test] [INFO] No tests to run. [INFO] [jar:jar] [WARNING] JAR will be empty - no content was marked for inclusion! [INFO] [install:install] [INFO] Installing P:\workspace\mvnfix\beta\target\beta-1.0.0-SNAPSHOT.jar to ~\.m2\repository\mvnfix\beta\1.0.0-SNAPSHOT\beta-1.0.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3 seconds [INFO] Finished at: Tue Nov 17 12:46:56 CET 2009 [INFO] ------------------------------------------------------------------------ P:\workspace\mvnfix\beta>ls -l ~/.m2/repository/mvnfix/alfa/1.0.0-SNAPSHOT total 17 -rwxr-xr-x+ 1 wgdela ???????? 25 Nov 17 12:41 alfa-1.0.0-20091117.114134-1.jar -rwxr-xr-x+ 1 wgdela ???????? 672 Nov 17 12:41 alfa-1.0.0-20091117.114134-1.pom -rwxr-xr-x+ 1 wgdela ???????? 32 Nov 17 12:45 alfa-1.0.0-20091117.114526-2.jar -rwxr-xr-x+ 1 wgdela ???????? 672 Nov 17 12:45 alfa-1.0.0-20091117.114526-2.pom -rwxr-xr-x+ 1 wgdela ???????? 25 Nov 17 12:43 alfa-1.0.0-SNAPSHOT.jar -rwxr-xr-x+ 1 wgdela ???????? 672 Nov 17 12:46 alfa-1.0.0-SNAPSHOT.pom -rwxr-xr-x+ 1 wgdela ???????? 344 Nov 17 12:46 maven-metadata-temprepo.xml -rwxr-xr-x+ 1 wgdela ???????? 40 Nov 17 12:46 maven-metadata-temprepo.xml.sha1 {noformat} Now only the {{alfa-1.0.0-SNAPSHOT.pom}} changes, and the jar is still old. This results in building beta with old version of alfa. For comparision, here's how it look like, when you build alfa with plain maven. {noformat} P:\workspace\mvnfix\beta>cd ../alfa P:\workspace\mvnfix\alfa>mvn deploy [INFO] Scanning for projects... [INFO] ---------------------------------------------------------------------------- [INFO] Building Unnamed - mvnfix:alfa:jar:1.0.0-SNAPSHOT [INFO] task-segment: [deploy] [INFO] ---------------------------------------------------------------------------- [INFO] [resources:resources] [INFO] skip non existing resourceDirectory P:\workspace\mvnfix\alfa\src\main\resources [INFO] [compiler:compile] [INFO] No sources to compile [INFO] [resources:testResources] [INFO] skip non existing resourceDirectory P:\workspace\mvnfix\alfa\src\test\resources [INFO] [compiler:testCompile] [INFO] No sources to compile [INFO] [surefire:test] [INFO] No tests to run. [INFO] [jar:jar] [WARNING] JAR will be empty - no content was marked for inclusion! [INFO] [install:install] [INFO] Installing P:\workspace\mvnfix\alfa\target\alfa-1.0.0-SNAPSHOT.jar to ~\.m2\repository\mvnfix\alfa\1.0.0-SNAPSHOT\alfa-1.0.0-SNAPSHOT.jar [INFO] [deploy:deploy] [INFO] Retrieving previous build number from temprepo Uploading: file:///C:/Temp/repo/mvnfix/alfa/1.0.0-SNAPSHOT/alfa-1.0.0-20091117.114852-3.jar 1K uploaded [INFO] Retrieving previous metadata from temprepo [INFO] Uploading repository metadata for: 'artifact mvnfix:alfa' [INFO] Retrieving previous metadata from temprepo [INFO] Uploading project information for alfa 1.0.0-20091117.114852-3 [INFO] Retrieving previous metadata from temprepo [INFO] Uploading repository metadata for: 'snapshot mvnfix:alfa:1.0.0-SNAPSHOT' [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3 seconds [INFO] Finished at: Tue Nov 17 12:48:52 CET 2009 [INFO] ------------------------------------------------------------------------ P:\workspace\mvnfix\alfa>ls -l ~/.m2/repository/mvnfix/alfa/1.0.0-SNAPSHOT total 29 -rwxr-xr-x+ 1 wgdela ???????? 25 Nov 17 12:41 alfa-1.0.0-20091117.114134-1.jar -rwxr-xr-x+ 1 wgdela ???????? 672 Nov 17 12:41 alfa-1.0.0-20091117.114134-1.pom -rwxr-xr-x+ 1 wgdela ???????? 32 Nov 17 12:45 alfa-1.0.0-20091117.114526-2.jar -rwxr-xr-x+ 1 wgdela ???????? 672 Nov 17 12:45 alfa-1.0.0-20091117.114526-2.pom -rwxr-xr-x+ 1 wgdela ???????? 1441 Nov 17 12:48 alfa-1.0.0-20091117.114852-3.jar -rwxr-xr-x+ 1 wgdela ???????? 672 Nov 17 12:48 alfa-1.0.0-20091117.114852-3.pom -rwxr-xr-x+ 1 wgdela ???????? 1441 Nov 17 12:48 alfa-1.0.0-SNAPSHOT.jar -rwxr-xr-x+ 1 wgdela ???????? 672 Nov 17 12:48 alfa-1.0.0-SNAPSHOT.pom -rwxr-xr-x+ 1 wgdela ???????? 298 Nov 17 12:48 maven-metadata-local.xml -rwxr-xr-x+ 1 wgdela ???????? 344 Nov 17 12:48 maven-metadata-temprepo.xml -rwxr-xr-x+ 1 wgdela ???????? 40 Nov 17 12:48 maven-metadata-temprepo.xml.sha1 {noformat} As you can see the {{alfa-1.0.0-SNAPSHOT.jar}} file is now fresh. So my conslusion: maven-ant should implicitly execute install phase, when artifact:deploy is used. -- 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