diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java b/maven-artifact/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java index b41daf2386..333f69476c 100644 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java +++ b/maven-artifact/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java @@ -22,6 +22,7 @@ import org.apache.maven.artifact.metadata.VersionArtifactMetadata; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.layout.ArtifactPathFormatException; +import org.apache.maven.wagon.ResourceDoesNotExistException; import org.codehaus.plexus.logging.AbstractLogEnabled; import java.io.File; @@ -107,7 +108,7 @@ else if ( snapshotPolicy.startsWith( ArtifactRepository.SNAPSHOT_POLICY_INTERVAL getLogger().info( artifact.getArtifactId() + ": checking for updates from " + remoteRepository.getId() ); - VersionArtifactMetadata remoteMetadata = retrieveFromRemoteRepository( artifact, remoteRepository ); + VersionArtifactMetadata remoteMetadata = retrieveFromRemoteRepository( artifact, remoteRepository, localMetadata ); int difference = remoteMetadata.compareTo( localMetadata ); if ( difference > 0 ) @@ -171,7 +172,8 @@ else if ( difference == 0 ) } protected abstract VersionArtifactMetadata retrieveFromRemoteRepository( Artifact artifact, - ArtifactRepository remoteRepository ) + ArtifactRepository remoteRepository, + VersionArtifactMetadata localMetadata ) throws ArtifactMetadataRetrievalException; protected abstract VersionArtifactMetadata readFromLocalRepository( Artifact artifact, diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java b/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java index 51123bc17f..4074859a63 100644 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java +++ b/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java @@ -81,7 +81,8 @@ public void transformForDeployment( Artifact artifact, ArtifactRepository remote } protected VersionArtifactMetadata retrieveFromRemoteRepository( Artifact artifact, - ArtifactRepository remoteRepository ) + ArtifactRepository remoteRepository, + VersionArtifactMetadata localMetadata ) throws ArtifactMetadataRetrievalException { AbstractVersionArtifactMetadata metadata = new ReleaseArtifactMetadata( artifact ); @@ -91,7 +92,11 @@ protected VersionArtifactMetadata retrieveFromRemoteRepository( Artifact artifac } catch ( ResourceDoesNotExistException e ) { - throw new ArtifactMetadataRetrievalException( "No releases could be detected for the artifact", e ); + if ( localMetadata.constructVersion() == null ) + { + throw new ArtifactMetadataRetrievalException( "Unable to find release for artifact " + artifact, e ); + } + // otherwise, ignore - use the local one } return metadata; } diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java b/maven-artifact/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java index 83727b4879..4b911bad24 100644 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java +++ b/maven-artifact/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java @@ -25,7 +25,6 @@ import org.apache.maven.wagon.ResourceDoesNotExistException; import java.io.IOException; -import java.io.File; import java.util.List; import java.util.regex.Matcher; @@ -94,8 +93,8 @@ public void transformForDeployment( Artifact artifact, ArtifactRepository remote } else if ( isSnapshot( artifact ) ) { - SnapshotArtifactMetadata metadata = (SnapshotArtifactMetadata) retrieveFromRemoteRepository( artifact, - remoteRepository ); + SnapshotArtifactMetadata metadata = null; + metadata = (SnapshotArtifactMetadata) retrieveFromRemoteRepository( artifact, remoteRepository, null ); metadata.update(); artifact.setVersion( metadata.constructVersion() ); @@ -110,7 +109,8 @@ private static boolean isSnapshot( Artifact artifact ) } protected VersionArtifactMetadata retrieveFromRemoteRepository( Artifact artifact, - ArtifactRepository remoteRepository ) + ArtifactRepository remoteRepository, + VersionArtifactMetadata localMetadata ) throws ArtifactMetadataRetrievalException { SnapshotArtifactMetadata metadata = new SnapshotArtifactMetadata( artifact ); diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java index 6ce92b838a..f095cae518 100644 --- a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java +++ b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java @@ -23,6 +23,7 @@ import org.apache.maven.execution.MavenExecutionResponse; import org.apache.maven.execution.MavenSession; import org.apache.maven.model.Plugin; +import org.apache.maven.model.PluginManagement; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.PluginManager; import org.apache.maven.plugin.PluginManagerException; @@ -188,10 +189,14 @@ private void injectHandlerPluginConfiguration( MavenProject project, String grou plugin.setArtifactId( artifactId ); plugin.setVersion( version ); - Plugin def = (Plugin) project.getPluginManagement().getPluginsAsMap().get( key ); - if ( def != null ) + PluginManagement pluginManagement = project.getPluginManagement(); + if ( pluginManagement != null ) { - modelDefaultsInjector.mergePluginWithDefaults( plugin, def ); + Plugin def = (Plugin) pluginManagement.getPluginsAsMap().get( key ); + if ( def != null ) + { + modelDefaultsInjector.mergePluginWithDefaults( plugin, def ); + } } project.addPlugin( plugin ); diff --git a/maven-mboot2/src/main/java/MBoot.java b/maven-mboot2/src/main/java/MBoot.java index 46e39e5031..392c71835c 100644 --- a/maven-mboot2/src/main/java/MBoot.java +++ b/maven-mboot2/src/main/java/MBoot.java @@ -636,8 +636,6 @@ private ModelReader buildProject( String basedir, String projectId, ClassLoader installPom( basedir, localRepository, reader ); - String artifactId = reader.getArtifactId(); - install( basedir, localRepository, reader, reader.getPackaging() ); return reader; @@ -742,7 +740,6 @@ private void installPom( String basedir, Repository localRepository, ModelReader throws Exception { installPomFile( reader, localRepository, new File( basedir, "pom.xml" ) ); - } private void installPomFile( ModelReader reader, Repository localRepository, File source ) @@ -789,6 +786,8 @@ private void install( String basedir, Repository localRepository, ModelReader re FileUtils.copyFile( new File( basedir, BUILD_DIR + "/" + finalName + ".jar" ), file ); + file = localRepository.getMetadataFile( groupId, artifactId, null, type, artifactId + "-RELEASE.version.txt" ); + IOUtil.copy( new StringReader( version ), new FileWriter( file ) ); } private void runTests( String basedir, String classes, String testClasses, ModelReader reader, @@ -807,7 +806,7 @@ private void runTests( String basedir, String classes, String testClasses, Model excludes = new ArrayList(); - excludes.add( "**/*Abstract*.java" ); + excludes.add( "**/Abstract*Test.java" ); String reportsDir = new File( basedir, "target/surefire-reports" ).getAbsolutePath(); diff --git a/maven-mboot2/src/main/java/model/Repository.java b/maven-mboot2/src/main/java/model/Repository.java index 8068ef9ed8..8959ea6846 100644 --- a/maven-mboot2/src/main/java/model/Repository.java +++ b/maven-mboot2/src/main/java/model/Repository.java @@ -107,7 +107,11 @@ else if ( LAYOUT_DEFAULT.equals( layout ) ) repositoryPath = dependency.getGroupId().replace( '.', '/' ); // if ( !dependency.getType().equals( "pom" ) ) // { - repositoryPath = repositoryPath + "/" + dependency.getArtifactId() + "/" + dependency.getVersion(); + repositoryPath = repositoryPath + "/" + dependency.getArtifactId(); + if ( version != null ) + { + repositoryPath = repositoryPath + "/" + dependency.getVersion(); + } // } repositoryPath = repositoryPath + "/" + filename; } diff --git a/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test/SurefirePlugin.java b/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test/SurefirePlugin.java index 1c80809155..905365a75a 100644 --- a/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test/SurefirePlugin.java +++ b/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test/SurefirePlugin.java @@ -25,6 +25,7 @@ import java.io.File; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.StringTokenizer; @@ -40,7 +41,7 @@ public class SurefirePlugin extends AbstractMojo { - + /** * @parameter expression="${basedir}" * @required @@ -68,14 +69,14 @@ public class SurefirePlugin /** * Base directory where all reports are written to. - * + * * @parameter expression="${project.build.directory}/surefire-reports" */ private String reportsDirectory; /** * Specify this parameter if you want to use the test regex notation to select tests to run. - * + * * @parameter */ private String test; @@ -83,12 +84,12 @@ public class SurefirePlugin /** * @parameter */ - private List includes; + private List includes = new ArrayList( Collections.singletonList( "**/*Test.java" ) ); /** * @parameter */ - private List excludes; + private List excludes = new ArrayList( Collections.singletonList( "**/Abstract*Test.java" ) ); /** * @parameter expression="${localRepository}" diff --git a/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml b/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml index 22bd30f73c..0078cf6b43 100644 --- a/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml +++ b/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml @@ -38,64 +38,6 @@ src/test/resources - - - - - org.apache.maven.plugins - maven-compiler-plugin - 1.0-alpha-2-SNAPSHOT - - - org.apache.maven.plugins - maven-resources-plugin - 1.0-alpha-2-SNAPSHOT - - - org.apache.maven.plugins - maven-jar-plugin - 1.0-alpha-2-SNAPSHOT - - - org.apache.maven.plugins - maven-surefire-plugin - 1.0-alpha-2-SNAPSHOT - - - **/*Test.java - - - **/Abstract*Test.java - - - - - org.apache.maven.plugins - maven-clean-plugin - 1.0-alpha-2-SNAPSHOT - - - org.apache.maven.plugins - maven-deploy-plugin - 1.0-alpha-2-SNAPSHOT - - - org.apache.maven.plugins - maven-install-plugin - 1.0-alpha-2-SNAPSHOT - - - org.apache.maven.plugins - maven-pom-plugin - 1.0-alpha-2-SNAPSHOT - - - org.apache.maven.plugins - maven-plugin-plugin - 1.0-alpha-2-SNAPSHOT - - -