// Copyright FreeHEP, 2006.
package org.freehep.maven.one;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.FileUtils;
/**
* Builds an XML fragment with all dependencies (flattened) for maven 1.
* @goal generate-dependencies
* @description Builds an XML fragment with all dependencies (flattened) for maven 1.
* @phase generate-resources
* @requiresProject
* @requiresDependencyResolution
* @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark Donszelmann</a>
* @version $Id: OneMojo.java 8947 2006-09-12 18:16:26Z duns $
*/
public class OneMojo extends AbstractMojo {
/**
* The target directory into which to generate the output.
*
* @parameter expression="${project.build.directory}"
* @required
*/
private String targetDirectory;
/**
* @parameter expression="${project}"
* @required
* @readonly
*/
private MavenProject project;
public void execute() throws MojoExecutionException {
if (!FileUtils.fileExists(targetDirectory)) {
FileUtils.mkdir(targetDirectory);
}
String siteDirectory = targetDirectory+"/site";
if (!FileUtils.fileExists(siteDirectory)) {
FileUtils.mkdir(siteDirectory);
}
try {
PrintWriter xml = new PrintWriter(new FileWriter(
siteDirectory+"/project.xml"));
xml.println("<project>");
xml.println(" <pomVersion>3</pomVersion>");
xml.println(" <id>jaida-example</id>");
xml.println(" <groupId>jaida.example.group</groupId>");
xml.println(" <artifactId>jaida-example</artifactId>");
xml.println(" <name>JAIDA Maven1 Example</name>");
xml.println(" <currentVersion>1.0-SNAPSHOT</currentVersion>");
xml.println();
xml.println(" <dependencies>");
List dependencies = project.getRuntimeArtifacts();
Collections.sort(dependencies);
for (Iterator i = dependencies.iterator(); i.hasNext();) {
Artifact dependency = (Artifact) i.next();
xml.println(" <dependency>");
xml.println(" <groupId>"+dependency.getGroupId()+"</groupId>");
xml.println(" <artifactId>"+dependency.getArtifactId()+"</artifactId>");
xml.println(" <version>"+dependency.getVersion()+"</version>");
xml.println(" </dependency>");
}
xml.println(" </dependencies>");
xml.println();
xml.println("</project>");
xml.close();
} catch (IOException e) {
throw new MojoExecutionException(
"Failed to write Maven1 dependencies file", e);
}
}
}