package de.suite4p.commons.maven.jboss; import java.io.File; import org.apache.maven.archiver.MavenArchiveConfiguration; import org.apache.maven.archiver.MavenArchiver; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.archiver.jar.JarArchiver; /** * @author Thomas Hart */ public abstract class AbstractPackMojo extends AbstractMojo { /** * Directory containing the classes. * * @parameter expression="${project.build.outputDirectory}" * @required */ private File archetypeDirectory; /** * The maven archive configuration to use. * *

* See * the Javadocs for MavenArchiveConfiguration. *

* * @parameter */ private MavenArchiveConfiguration archive = new MavenArchiveConfiguration(); /** * Name of the generated Archive. * * @parameter alias="archiveName" expression="${project.build.finalName}" * @required */ private String finalName; /** * The JAR archiver. * * @parameter expression="${component.org.codehaus.plexus.archiver.Archiver#jar}" * @required */ private JarArchiver jarArchiver; /** * Directory containing the generated Archive. * * @parameter expression="${project.build.directory}" * @required */ private File outputDirectory; /** * The maven project. * * @parameter expression="${project}" * @required * @readonly */ private MavenProject project; public void execute() throws MojoExecutionException, MojoFailureException { getLog().error("******************************"); //$NON-NLS-1$ getLog().error("HALLO"); //$NON-NLS-1$ getLog().error("******************************"); //$NON-NLS-1$ final File archiveFile = getArchiveFile(outputDirectory, finalName); final MavenArchiver archiver = new MavenArchiver(); archiver.setArchiver(jarArchiver); archiver.setOutputFile(archiveFile); archive.setForced(true); try { if (archetypeDirectory.exists() == false) { getLog().warn("Archive will be empty - no content was marked for inclusion!"); //$NON-NLS-1$ } else { archiver.getArchiver().addDirectory(archetypeDirectory); } archiver.createArchive(project, archive); } catch (Exception ex) { throw new MojoExecutionException("Error assembling archive", ex); //$NON-NLS-1$ } project.getArtifact().setFile(archiveFile); } protected abstract File getArchiveFile(File basedir, String finalName); }