You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by jd...@apache.org on 2005/09/19 19:59:04 UTC
svn commit: r290221 - in /maven/components/trunk:
maven-core-it/it2002/project/ maven-core-it/it2002/project/src/
maven-core-it/it2002/project/subproject/
maven-core-it/it2002/project/subproject/src/
maven-core-it/it2002/project/subproject/src/main/ ma...
Author: jdcasey
Date: Mon Sep 19 10:58:46 2005
New Revision: 290221
URL: http://svn.apache.org/viewcvs?rev=290221&view=rev
Log:
Resolving: MNG-878, MNG-880 (again)
o Added full resolution of plugins listed in the project hierarchy
o Added better resolution of snapshots within the reactor, and resolution of ${finalName}
o Added usage of fully inherited model for release-pom.xml, to enable convergence of all POM inheritance to a single POM with no parent.
o Improved handling of SCM info in a reactored situation.
Added:
maven/components/trunk/maven-core-it/it2002/project/subproject/
maven/components/trunk/maven-core-it/it2002/project/subproject/pom.xml (with props)
maven/components/trunk/maven-core-it/it2002/project/subproject/src/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/Thing.java (with props)
maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/components.xml (with props)
maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/
maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java (with props)
maven/components/trunk/maven-core-it/it2002/project/subproject2/
maven/components/trunk/maven-core-it/it2002/project/subproject2/pom.xml (with props)
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/Thing.java (with props)
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/components.xml (with props)
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/
maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java (with props)
Removed:
maven/components/trunk/maven-core-it/it2002/project/src/
Modified:
maven/components/trunk/maven-core-it/it2002/project/pom.xml
maven/components/trunk/maven-plugins/maven-release-plugin/pom.xml
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java
maven/components/trunk/maven-plugins/pom.xml
Modified: maven/components/trunk/maven-core-it/it2002/project/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/pom.xml?rev=290221&r1=290220&r2=290221&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/pom.xml (original)
+++ maven/components/trunk/maven-core-it/it2002/project/pom.xml Mon Sep 19 10:58:46 2005
@@ -3,6 +3,12 @@
<groupId>org.apache.maven.it2002</groupId>
<artifactId>project</artifactId>
<version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>subproject</module>
+ <module>subproject2</module>
+ </modules>
<dependencies>
<dependency>
@@ -11,18 +17,6 @@
<version>1.0-alpha-6</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-artifact</artifactId>
- <version>2.0-beta-1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-artifact-manager</artifactId>
- <version>2.0-beta-1</version>
- <scope>test</scope>
- </dependency>
</dependencies>
<repositories>
@@ -56,20 +50,21 @@
<tagBase>file://${project.file.parentFile.parentFile}/target/svnroot/project/tags</tagBase>
</properties>
- <!-- build>
+ <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-release-plugin</artifactId>
- <version>2.0-beta-1-SNAPSHOT</version>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.0-beta-1</version>
</plugin>
</plugins>
- </build -->
+ </build>
<reporting>
<plugins>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
+ <version>2.0-alpha-1</version>
</plugin>
</plugins>
</reporting>
Added: maven/components/trunk/maven-core-it/it2002/project/subproject/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject/pom.xml?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject/pom.xml Mon Sep 19 10:58:46 2005
@@ -0,0 +1,26 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven.it2002</groupId>
+ <artifactId>project</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>project-sub1</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>2.0-beta-1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ <version>2.0-beta-1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+</project>
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/Thing.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/Thing.java?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/Thing.java (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/Thing.java Mon Sep 19 10:58:46 2005
@@ -0,0 +1,9 @@
+package org.apache.maven.it2002;
+
+public class Thing
+{
+ public static final String ROLE = Thing.class.getName();
+
+ private String type;
+}
+
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/Thing.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/java/org/apache/maven/it2002/Thing.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/components.xml?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/components.xml (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/components.xml Mon Sep 19 10:58:46 2005
@@ -0,0 +1,8 @@
+<component-set>
+ <components>
+ <component>
+ <role>org.apache.maven.it2002.Thing</role>
+ <implementation>org.apache.maven.it2002.Thing</implementation>
+ </component>
+ </components>
+</component-set>
\ No newline at end of file
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java Mon Sep 19 10:58:46 2005
@@ -0,0 +1,20 @@
+package org.apache.maven.it2002;
+
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.codehaus.plexus.PlexusTestCase;
+
+public class ContainerDependentTest extends PlexusTestCase
+{
+
+ public void testOne() throws Exception
+ {
+ ArtifactResolver resolver = (ArtifactResolver) lookup( ArtifactResolver.ROLE );
+
+ assertNotNull( resolver );
+
+ Thing thing = (Thing) lookup( Thing.ROLE );
+
+ assertNotNull( thing );
+ }
+
+}
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it2002/project/subproject2/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject2/pom.xml?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject2/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject2/pom.xml Mon Sep 19 10:58:46 2005
@@ -0,0 +1,31 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven.it2002</groupId>
+ <artifactId>project</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>project-sub2</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.it2002</groupId>
+ <artifactId>project-sub1</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>2.0-beta-1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ <version>2.0-beta-1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+</project>
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/Thing.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/Thing.java?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/Thing.java (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/Thing.java Mon Sep 19 10:58:46 2005
@@ -0,0 +1,9 @@
+package org.apache.maven.it2002;
+
+public class Thing
+{
+ public static final String ROLE = Thing.class.getName();
+
+ private String type;
+}
+
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/Thing.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/java/org/apache/maven/it2002/Thing.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/components.xml?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/components.xml (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/components.xml Mon Sep 19 10:58:46 2005
@@ -0,0 +1,8 @@
+<component-set>
+ <components>
+ <component>
+ <role>org.apache.maven.it2002.Thing</role>
+ <implementation>org.apache.maven.it2002.Thing</implementation>
+ </component>
+ </components>
+</component-set>
\ No newline at end of file
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java?rev=290221&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java (added)
+++ maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java Mon Sep 19 10:58:46 2005
@@ -0,0 +1,20 @@
+package org.apache.maven.it2002;
+
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.codehaus.plexus.PlexusTestCase;
+
+public class ContainerDependentTest extends PlexusTestCase
+{
+
+ public void testOne() throws Exception
+ {
+ ArtifactResolver resolver = (ArtifactResolver) lookup( ArtifactResolver.ROLE );
+
+ assertNotNull( resolver );
+
+ Thing thing = (Thing) lookup( Thing.ROLE );
+
+ assertNotNull( thing );
+ }
+
+}
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-core-it/it2002/project/subproject2/src/test/java/org/apache/maven/it2002/ContainerDependentTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/components/trunk/maven-plugins/maven-release-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/pom.xml?rev=290221&r1=290220&r2=290221&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-release-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-release-plugin/pom.xml Mon Sep 19 10:58:46 2005
@@ -11,6 +11,16 @@
<version>2.0-beta-2-SNAPSHOT</version>
<dependencies>
<dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ <version>2.0-beta-1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>2.0-beta-1</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-api</artifactId>
<version>1.0-alpha-2</version>
@@ -50,4 +60,4 @@
<version>1.0-alpha-2</version>
</dependency>
</dependencies>
-</project>
\ No newline at end of file
+</project>
Modified: maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java?rev=290221&r1=290220&r2=290221&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java Mon Sep 19 10:58:46 2005
@@ -31,7 +31,10 @@
import org.apache.maven.model.PluginManagement;
import org.apache.maven.model.ReportPlugin;
import org.apache.maven.model.Reporting;
+import org.apache.maven.model.Resource;
import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.version.PluginVersionManager;
+import org.apache.maven.plugin.version.PluginVersionResolutionException;
import org.apache.maven.plugins.release.helpers.ProjectScmRewriter;
import org.apache.maven.plugins.release.helpers.ProjectVersionResolver;
import org.apache.maven.plugins.release.helpers.ReleaseProgressTracker;
@@ -39,6 +42,7 @@
import org.apache.maven.project.MavenProject;
import org.apache.maven.scm.ScmException;
import org.apache.maven.scm.ScmFile;
+import org.apache.maven.settings.Settings;
import org.codehaus.plexus.components.inputhandler.InputHandler;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.StringUtils;
@@ -90,12 +94,15 @@
private boolean interactive;
/**
- * @parameter expression="${component.org.apache.maven.artifact.metadata.ArtifactMetadataSource}"
- * @required
- * @readonly
+ * @component role="org.apache.maven.artifact.metadata.ArtifactMetadataSource"
*/
private ArtifactMetadataSource artifactMetadataSource;
-
+
+ /**
+ * @component role="org.apache.maven.plugin.version.PluginVersionManager"
+ */
+ private PluginVersionManager pluginVersionManager;
+
/**
* @parameter expression="${component.org.codehaus.plexus.components.inputhandler.InputHandler}"
* @required
@@ -109,6 +116,13 @@
* @readonly
*/
private ArtifactRepository localRepository;
+
+ /**
+ * @parameter expression="${settings}"
+ * @required
+ * @readonly
+ */
+ private Settings settings;
/**
* @parameter expression="${reactorProjects}"
@@ -239,7 +253,7 @@
}
}
- removeReleasePoms();
+// removeReleasePoms();
checkInNextSnapshot();
@@ -819,17 +833,37 @@
MavenProject project = (MavenProject) it.next();
MavenProject releaseProject = new MavenProject( project );
- Model releaseModel = releaseProject.getOriginalModel();
- fixNullValueInModel( releaseModel, project.getOriginalModel() );
+ Model releaseModel = releaseProject.getModel();
+ fixNullValueInModel( releaseModel, project.getModel() );
- // Remove parent
-/* TODO: put this back after it is properly resolved again
- if ( releaseModel.getParent() != null )
+ String projectVersion = releaseModel.getVersion();
+ if ( ArtifactUtils.isSnapshot( projectVersion ) )
{
- releaseModel.setParent( null );
+ String snapshotVersion = projectVersion;
+
+ projectVersion = getVersionResolver().getResolvedVersion( releaseModel.getGroupId(), releaseModel.getArtifactId() );
+
+ if ( ArtifactUtils.isSnapshot( projectVersion ) )
+ {
+ throw new MojoExecutionException( "MAJOR PROBLEM!!! Cannot find resolved version to be used in releasing project: " + releaseProject.getId() );
+ }
+
+ releaseModel.setVersion( projectVersion );
+
+ String finalName = releaseModel.getBuild().getFinalName();
+
+ if ( finalName.equals( releaseModel.getArtifactId() + "-" + snapshotVersion ) )
+ {
+ releaseModel.getBuild().setFinalName( releaseModel.getArtifactId() + "-" + projectVersion );
+ }
+ else if ( finalName.indexOf( "SNAPSHOT" ) > -1 )
+ {
+ throw new MojoExecutionException( "Cannot reliably adjust the finalName of project: " + releaseProject.getId() );
+ }
}
+
+ releaseModel.setParent( null );
-*/
Set artifacts = releaseProject.getArtifacts();
if ( artifacts != null )
@@ -840,12 +874,24 @@
for ( Iterator i = releaseProject.getArtifacts().iterator(); i.hasNext(); )
{
Artifact artifact = (Artifact) i.next();
-
+
Dependency newdep = new Dependency();
newdep.setArtifactId( artifact.getArtifactId() );
newdep.setGroupId( artifact.getGroupId() );
- newdep.setVersion( artifact.getVersion() );
+
+ String version = artifact.getVersion();
+ if ( artifact.isSnapshot() )
+ {
+ version = getVersionResolver().getResolvedVersion(artifact.getGroupId(), artifact.getArtifactId() );
+
+ if ( ArtifactUtils.isSnapshot( version ) )
+ {
+ throw new MojoExecutionException( "Unresolved SNAPSHOT version of: " + artifact.getId() + ". Cannot proceed with release." );
+ }
+ }
+
+ newdep.setVersion( version );
newdep.setType( artifact.getType() );
newdep.setScope( artifact.getScope() );
newdep.setClassifier( artifact.getClassifier() );
@@ -858,21 +904,30 @@
// Use original - don't want the lifecycle introduced ones
// TODO: but is it the right settings?
- Build originalModel = releaseProject.getOriginalModel().getBuild();
- List plugins = originalModel != null ? originalModel.getPlugins() : null;
+ Build model = releaseProject.getModel().getBuild();
+ List plugins = model != null ? model.getPlugins() : null;
if ( plugins != null )
{
//Rewrite plugins version
- Map pluginArtifacts = releaseProject.getPluginArtifactMap();
-
for ( Iterator i = plugins.iterator(); i.hasNext(); )
{
Plugin plugin = (Plugin) i.next();
- Artifact artifact = (Artifact) pluginArtifacts.get( plugin.getKey() );
-
- String version = resolveVersion( artifact, "plugin", releaseProject );
+ String version;
+ try
+ {
+ version = pluginVersionManager.resolvePluginVersion( plugin.getGroupId(), plugin.getArtifactId(), project, settings, localRepository );
+ }
+ catch ( PluginVersionResolutionException e )
+ {
+ throw new MojoExecutionException( "Cannot resolve version for plugin: " + plugin );
+ }
+
+ if ( ArtifactUtils.isSnapshot(version))
+ {
+ throw new MojoExecutionException( "Resolved version of plugin is a snapshot. Please release this plugin before releasing this project.\n\nGroupId: " + plugin.getGroupId() + "\nArtifactId: " + plugin.getArtifactId() + "\nResolved Version: " + version + "\n\n" );
+ }
plugin.setVersion( version );
}
@@ -883,21 +938,25 @@
if ( reports != null )
{
//Rewrite report version
- Map reportArtifacts = releaseProject.getReportArtifactMap();
-
- getLog().info( "Using report-artifact map with " + reportArtifacts.size() + " entries." );
-
for ( Iterator i = reports.iterator(); i.hasNext(); )
{
ReportPlugin plugin = (ReportPlugin) i.next();
- String pluginKey = plugin.getKey();
-
- getLog().info( "Looking up report artifact for: \'" + pluginKey + "\'" );
+ String version;
+ try
+ {
+ version = pluginVersionManager.resolvePluginVersion( plugin.getGroupId(), plugin
+ .getArtifactId(), project, settings, localRepository, true );
+ }
+ catch ( PluginVersionResolutionException e )
+ {
+ throw new MojoExecutionException( "Cannot resolve version for report plugin: " + plugin );
+ }
- Artifact artifact = (Artifact) reportArtifacts.get( pluginKey );
-
- String version = resolveVersion( artifact, "report", releaseProject );
+ if ( ArtifactUtils.isSnapshot(version))
+ {
+ throw new MojoExecutionException( "Resolved version of plugin is a snapshot. Please release this report plugin before releasing this project.\n\nGroupId: " + plugin.getGroupId() + "\nArtifactId: " + plugin.getArtifactId() + "\nResolved Version: " + version + "\n\n" );
+ }
plugin.setVersion( version );
}
@@ -923,6 +982,15 @@
ext.setVersion( version );
}
}
+
+ try
+ {
+ relativizeBuildPaths( model, project.getFile().getParentFile().getCanonicalPath() );
+ }
+ catch ( IOException e )
+ {
+ throw new MojoExecutionException( "Cannot relativize build paths for: " + project.getId(), e );
+ }
File releasePomFile = new File( releaseProject.getFile().getParentFile(), RELEASE_POM );
@@ -932,7 +1000,7 @@
{
writer = new FileWriter( releasePomFile );
- releaseProject.writeOriginalModel( writer );
+ releaseProject.writeModel( writer );
}
catch ( IOException e )
{
@@ -974,6 +1042,77 @@
}
}
+ private void relativizeBuildPaths( Build build, String canonicalBasedir )
+ {
+ int basePathLength = canonicalBasedir.length() + 1;
+
+ String directory = build.getDirectory();
+ if ( directory.startsWith( canonicalBasedir ) )
+ {
+ build.setDirectory( directory.substring( basePathLength ) );
+ }
+
+ String outDir = build.getOutputDirectory();
+ if ( outDir.startsWith( canonicalBasedir ) )
+ {
+ build.setOutputDirectory( outDir.substring( basePathLength ) );
+ }
+
+ String testOutDir = build.getTestOutputDirectory();
+ if ( testOutDir.startsWith( canonicalBasedir ) )
+ {
+ build.setTestOutputDirectory( testOutDir.substring( basePathLength ) );
+ }
+
+ String srcDir = build.getSourceDirectory();
+ if ( srcDir.startsWith( canonicalBasedir ) )
+ {
+ build.setSourceDirectory( srcDir.substring( basePathLength ) );
+ }
+
+ String scriptSrcDir = build.getScriptSourceDirectory();
+ if ( scriptSrcDir.startsWith( canonicalBasedir ) )
+ {
+ build.setScriptSourceDirectory( scriptSrcDir.substring( basePathLength ) );
+ }
+
+ String testSrcDir = build.getTestSourceDirectory();
+ if ( testSrcDir.startsWith( canonicalBasedir ) )
+ {
+ build.setTestSourceDirectory( testSrcDir.substring( basePathLength ) );
+ }
+
+ List resources = build.getResources();
+ if ( resources != null )
+ {
+ for ( Iterator it = resources.iterator(); it.hasNext(); )
+ {
+ Resource resource = (Resource) it.next();
+
+ String dir = resource.getDirectory();
+ if ( dir.startsWith( canonicalBasedir ) )
+ {
+ resource.setDirectory( dir.substring( basePathLength ) );
+ }
+ }
+ }
+
+ List testResources = build.getTestResources();
+ if ( testResources != null )
+ {
+ for ( Iterator it = testResources.iterator(); it.hasNext(); )
+ {
+ Resource resource = (Resource) it.next();
+
+ String dir = resource.getDirectory();
+ if ( dir.startsWith( canonicalBasedir ) )
+ {
+ resource.setDirectory( dir.substring( basePathLength ) );
+ }
+ }
+ }
+ }
+
private void fixNullValueInModel( Model modelToFix, Model correctModel )
{
if ( modelToFix.getModelVersion() != null )
@@ -1054,7 +1193,6 @@
private String resolveVersion( Artifact artifact, String artifactUsage, MavenProject project )
throws MojoExecutionException
{
- getLog().info( "Resolving version for: " + artifact );
String resolvedVersion = getVersionResolver().getResolvedVersion( artifact.getGroupId(),
artifact.getArtifactId() );
Modified: maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java?rev=290221&r1=290220&r2=290221&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java (original)
+++ maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java Mon Sep 19 10:58:46 2005
@@ -37,12 +37,6 @@
{
String projectId = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
- if ( project.getScm() == null )
- {
- throw new MojoExecutionException(
- "Project: " + projectId + " does not have a SCM section! Cannot proceed with release." );
- }
-
Model model = project.getOriginalModel();
Scm scm = model.getScm();
@@ -75,8 +69,18 @@
if ( scmConnection != null && scmConnection.startsWith( "scm:svn" ) )
{
scm.setConnection( convertSvnConnectionString( scmConnection, tag ) );
- scm.setDeveloperConnection( convertSvnConnectionString( scm.getDeveloperConnection(), tag ) );
- scm.setUrl( convertSvnConnectionString( scm.getUrl(), tag ) );
+
+ String devConnection = scm.getDeveloperConnection();
+ if ( devConnection != null )
+ {
+ scm.setDeveloperConnection( convertSvnConnectionString( devConnection, tag ) );
+ }
+
+ String url = scm.getUrl();
+ if ( url != null )
+ {
+ scm.setUrl( convertSvnConnectionString( url, tag ) );
+ }
}
}
}
Modified: maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java?rev=290221&r1=290220&r2=290221&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java (original)
+++ maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java Mon Sep 19 10:58:46 2005
@@ -198,25 +198,56 @@
public void addOriginalScmInfo( String projectId, Scm scm )
{
- releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".connection", scm.getConnection() );
- releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".developerConnection",
- scm.getDeveloperConnection() );
- releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".url", scm.getUrl() );
- releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".tag", scm.getTag() );
+ String connection = scm.getConnection();
+ if ( connection != null )
+ {
+ releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".connection", connection );
+ }
+
+ String devConnection = scm.getDeveloperConnection();
+ if ( devConnection != null )
+ {
+ releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".developerConnection",
+ devConnection );
+ }
+
+ String url = scm.getUrl();
+ if ( url != null )
+ {
+ releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".url", url );
+ }
+
+ String tag = scm.getTag();
+ if ( tag != null )
+ {
+ releaseProperties.setProperty( SCM_INFO_PREFIX + projectId + ".tag", tag );
+ }
}
public void restoreScmInfo( String projectId, Scm scm )
{
String connection = releaseProperties.getProperty( SCM_INFO_PREFIX + projectId + ".connection" );
- if ( connection == null )
+ if ( connection != null )
+ {
+ scm.setConnection( connection );
+ }
+
+ String devConnection = releaseProperties.getProperty( SCM_INFO_PREFIX + projectId + ".connection" );
+ if ( devConnection != null )
+ {
+ scm.setDeveloperConnection( devConnection );
+ }
+
+ String url = releaseProperties.getProperty( SCM_INFO_PREFIX + projectId + ".url" );
+ if ( url != null )
+ {
+ scm.setUrl( url );
+ }
+
+ String tag = releaseProperties.getProperty( SCM_INFO_PREFIX + projectId + ".tag" );
+ if ( tag != null )
{
- throw new IllegalArgumentException(
- "Project \'" + projectId + "\' has not had its SCM info cached. Cannot restore uncached SCM info." );
+ scm.setTag( tag );
}
- scm.setConnection( connection );
- scm.setDeveloperConnection(
- releaseProperties.getProperty( SCM_INFO_PREFIX + projectId + ".developerConnection" ) );
- scm.setUrl( releaseProperties.getProperty( SCM_INFO_PREFIX + projectId + ".url" ) );
- scm.setTag( releaseProperties.getProperty( SCM_INFO_PREFIX + projectId + ".tag" ) );
}
}
Modified: maven/components/trunk/maven-plugins/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/pom.xml?rev=290221&r1=290220&r2=290221&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/pom.xml (original)
+++ maven/components/trunk/maven-plugins/pom.xml Mon Sep 19 10:58:46 2005
@@ -152,7 +152,7 @@
<module>maven-assembly-plugin</module>
<module>maven-checkstyle-plugin</module>
<module>maven-clean-plugin</module>
- <module>maven-clover-plugin</module>
+ <!-- module>maven-clover-plugin</module -->
<module>maven-compiler-plugin</module>
<module>maven-deploy-plugin</module>
<module>maven-eclipse-plugin</module>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org