Index: src/main/java/org/apache/maven/plugin/install/AbstractInstallMojo.java =================================================================== --- src/main/java/org/apache/maven/plugin/install/AbstractInstallMojo.java (revision 645310) +++ src/main/java/org/apache/maven/plugin/install/AbstractInstallMojo.java (working copy) @@ -17,8 +17,10 @@ */ import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.transform.ArtifactTransformationManager; import org.apache.maven.artifact.installer.ArtifactInstaller; import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.codehaus.plexus.digest.Digester; @@ -48,6 +50,20 @@ protected ArtifactInstaller installer; /** + * @parameter expression="${component.org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager}" + * @required + * @readonly + */ + protected RepositoryMetadataManager repositoryMetadataManager; + + /** + * @parameter expression="${component.org.apache.maven.artifact.transform.ArtifactTransformationManager}" + * @required + * @readonly + */ + protected ArtifactTransformationManager transformationManager; + + /** * @parameter expression="${localRepository}" * @required * @readonly Index: src/main/java/org/apache/maven/plugin/install/InstallMojo.java =================================================================== --- src/main/java/org/apache/maven/plugin/install/InstallMojo.java (revision 645310) +++ src/main/java/org/apache/maven/plugin/install/InstallMojo.java (working copy) @@ -17,6 +17,8 @@ */ import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.repository.metadata.RepositoryMetadataInstallationException; +import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.installer.ArtifactInstallationException; import org.apache.maven.artifact.metadata.ArtifactMetadata; import org.apache.maven.plugin.MojoExecutionException; @@ -106,18 +108,14 @@ if ( createChecksum ) { - //create checksums for pom and artifact - File pom = new File( localRepository.getBasedir(), - localRepository.pathOfLocalRepositoryMetadata( metadata, - localRepository ) ); - - installCheckSum( pom, true ); + //create checksums for artifact installCheckSum( file, artifact, false ); } } else if ( !attachedArtifacts.isEmpty() ) { - getLog().info( "No primary artifact to install, installing attached artifacts instead." ); + getLog().info( "No primary artifact to install, installing standalone pom.xml and attached artifacts instead." ); + install( artifact, localRepository ); } else { @@ -125,6 +123,14 @@ "The packaging for this project did not assign a file to the build artifact" ); } } + if ( createChecksum ) + { + //create checksums for pom + File pom = new File( localRepository.getBasedir(), + localRepository.pathOfLocalRepositoryMetadata( metadata, + localRepository ) ); + installCheckSum( pom, true ); + } for ( Iterator i = attachedArtifacts.iterator(); i.hasNext(); ) { @@ -143,4 +149,23 @@ throw new MojoExecutionException( e.getMessage(), e ); } } + + private void install( Artifact artifact, ArtifactRepository localRepository ) + throws ArtifactInstallationException + { + try + { + transformationManager.transformForInstall( artifact, localRepository ); + for ( Iterator i = artifact.getMetadataList().iterator(); i.hasNext(); ) + { + ArtifactMetadata metadata = (ArtifactMetadata) i.next(); + repositoryMetadataManager.install( metadata, localRepository ); + } + } + catch ( RepositoryMetadataInstallationException e ) + { + throw new ArtifactInstallationException( "Error installing artifact's metadata: " + e.getMessage(), e ); + } + } + }