mirror of https://github.com/apache/maven.git
PR: MNG-1279
Submitted by: Philipp Meier Reviewed by: Brett Porter ability to write a pom on install-file git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@327918 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
40f9ee50eb
commit
6623da7692
|
@ -17,11 +17,18 @@ package org.apache.maven.plugin.install;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import org.apache.maven.artifact.Artifact;
|
import org.apache.maven.artifact.Artifact;
|
||||||
|
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||||
import org.apache.maven.artifact.factory.ArtifactFactory;
|
import org.apache.maven.artifact.factory.ArtifactFactory;
|
||||||
import org.apache.maven.artifact.installer.ArtifactInstallationException;
|
import org.apache.maven.artifact.installer.ArtifactInstallationException;
|
||||||
import org.apache.maven.plugin.MojoExecutionException;
|
import org.apache.maven.plugin.MojoExecutionException;
|
||||||
|
import org.apache.maven.model.Model;
|
||||||
|
import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
|
||||||
|
import org.apache.maven.project.artifact.ProjectArtifactMetadata;
|
||||||
|
import org.codehaus.plexus.util.IOUtil;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Installs a file in local repository.
|
* Installs a file in local repository.
|
||||||
|
@ -70,6 +77,12 @@ public class InstallFileMojo
|
||||||
*/
|
*/
|
||||||
private File file;
|
private File file;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @parameter expression="${generatePom}"
|
||||||
|
* @readonly
|
||||||
|
*/
|
||||||
|
private boolean generatePom = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @parameter expression="${component.org.apache.maven.artifact.factory.ArtifactFactory}"
|
* @parameter expression="${component.org.apache.maven.artifact.factory.ArtifactFactory}"
|
||||||
* @required
|
* @required
|
||||||
|
@ -80,10 +93,42 @@ public class InstallFileMojo
|
||||||
public void execute()
|
public void execute()
|
||||||
throws MojoExecutionException
|
throws MojoExecutionException
|
||||||
{
|
{
|
||||||
// TODO: validate
|
|
||||||
// TODO: maybe not strictly correct, while we should enfore that packaging has a type handler of the same id, we don't
|
|
||||||
Artifact artifact = artifactFactory.createArtifact( groupId, artifactId, version, null, packaging );
|
Artifact artifact = artifactFactory.createArtifact( groupId, artifactId, version, null, packaging );
|
||||||
|
|
||||||
|
// TODO: check if it exists first, and default to true if not
|
||||||
|
if ( generatePom )
|
||||||
|
{
|
||||||
|
FileWriter fw = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
File tempFile = File.createTempFile( "mvninstall", ".pom" );
|
||||||
|
tempFile.deleteOnExit();
|
||||||
|
|
||||||
|
Model model = new Model();
|
||||||
|
model.setGroupId( groupId );
|
||||||
|
model.setArtifactId( artifactId );
|
||||||
|
model.setVersion( version );
|
||||||
|
model.setPackaging( packaging );
|
||||||
|
model.setDescription( "POM was created from install:install-file" );
|
||||||
|
fw = new FileWriter( tempFile );
|
||||||
|
tempFile.deleteOnExit();
|
||||||
|
new MavenXpp3Writer().write( fw, model );
|
||||||
|
ArtifactMetadata metadata = new ProjectArtifactMetadata( artifact, tempFile );
|
||||||
|
artifact.addMetadata( metadata );
|
||||||
|
}
|
||||||
|
catch ( IOException e )
|
||||||
|
{
|
||||||
|
throw new MojoExecutionException( "Error writing temporary pom file: "
|
||||||
|
+ e.getMessage(), e );
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
IOUtil.close( fw );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: validate
|
||||||
|
// TODO: maybe not strictly correct, while we should enfore that packaging has a type handler of the same id, we don't
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
installer.install( file, artifact, localRepository );
|
installer.install( file, artifact, localRepository );
|
||||||
|
|
Loading…
Reference in New Issue