Author: gboue Date: Fri Nov 18 22:35:24 2016 New Revision: 1770444 URL: http://svn.apache.org/viewvc?rev=1770444&view=rev Log: [MINSTALL-110] install-file should also install bundled pom.xml from artifact.
Follow-up: make sure the POM file extracted from the archive is into a temporary folder, and that it is correctly deleted after installation. Modified: maven/plugins/trunk/maven-install-plugin/src/it/minstall-55/verify.bsh maven/plugins/trunk/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallFileMojo.java Modified: maven/plugins/trunk/maven-install-plugin/src/it/minstall-55/verify.bsh URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-install-plugin/src/it/minstall-55/verify.bsh?rev=1770444&r1=1770443&r2=1770444&view=diff ============================================================================== --- maven/plugins/trunk/maven-install-plugin/src/it/minstall-55/verify.bsh (original) +++ maven/plugins/trunk/maven-install-plugin/src/it/minstall-55/verify.bsh Fri Nov 18 22:35:24 2016 @@ -37,4 +37,10 @@ for ( String path : paths ) } } +File file = new File( basedir, "test-0.1.pom" ); +if ( !file.isFile() ) +{ + throw new FileNotFoundException( "Missing: " + file.getAbsolutePath() ); +} + return true; Modified: maven/plugins/trunk/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallFileMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallFileMojo.java?rev=1770444&r1=1770443&r2=1770444&view=diff ============================================================================== --- maven/plugins/trunk/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallFileMojo.java (original) +++ maven/plugins/trunk/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallFileMojo.java Fri Nov 18 22:35:24 2016 @@ -213,13 +213,16 @@ public class InstallFileMojo getLog().debug( "localRepoPath: " + repositoryManager.getLocalRepositoryBasedir( buildingRequest ) ); } + File temporaryPom = null; + if ( pomFile != null ) { processModel( readModel( pomFile ) ); } else { - readingPomFromJarFile(); + temporaryPom = readingPomFromJarFile(); + pomFile = temporaryPom; } validateArtifactInformation(); @@ -261,8 +264,8 @@ public class InstallFileMojo } else { - File generatedPomFile = generatePomFile(); - ProjectArtifactMetadata pomMetadata = new ProjectArtifactMetadata( artifact, generatedPomFile ); + temporaryPom = generatePomFile(); + ProjectArtifactMetadata pomMetadata = new ProjectArtifactMetadata( artifact, temporaryPom ); if ( Boolean.TRUE.equals( generatePom ) || ( generatePom == null && !getLocalRepoFile( buildingRequest, pomMetadata ).exists() ) ) { @@ -273,7 +276,7 @@ public class InstallFileMojo } else { - project.setFile( generatedPomFile ); + project.setFile( temporaryPom ); } } else if ( generatePom == null ) @@ -306,6 +309,14 @@ public class InstallFileMojo { throw new MojoExecutionException( e.getMessage(), e ); } + finally + { + if ( temporaryPom != null ) + { + // noinspection ResultOfMethodCallIgnored + temporaryPom.delete(); + } + } } /** @@ -336,10 +347,10 @@ public class InstallFileMojo } } - private void readingPomFromJarFile() + private File readingPomFromJarFile() throws MojoExecutionException { - boolean foundPom = false; + File pomFile = null; JarFile jarFile = null; try @@ -358,8 +369,6 @@ public class InstallFileMojo { getLog().debug( "Using " + entry.getName() + " as pomFile" ); - foundPom = true; - InputStream pomInputStream = null; OutputStream pomOutputStream = null; @@ -372,7 +381,7 @@ public class InstallFileMojo { base = base.substring( 0, base.lastIndexOf( '.' ) ); } - pomFile = new File( file.getParentFile(), base + ".pom" ); + pomFile = File.createTempFile( base, ".pom" ); pomOutputStream = new FileOutputStream( pomFile ); @@ -396,7 +405,7 @@ public class InstallFileMojo } } - if ( !foundPom ) + if ( pomFile == null ) { getLog().info( "pom.xml not found in " + file.getName() ); } @@ -419,6 +428,7 @@ public class InstallFileMojo } } } + return pomFile; } /**