Search in sources :

Example 1 with Reporting

use of org.apache.maven.model.Reporting in project maven-plugins by apache.

the class ReactorMavenProjectStub method getModel.

public Model getModel() {
    if (model == null) {
        model = new Model();
        model.setGroupId(getGroupId());
        model.setArtifactId(getArtifactId());
        model.setVersion(getVersion());
        model.setPackaging(getPackaging());
        model.setProperties(new Properties());
        Build build = new Build();
        build.setFinalName(getArtifactId() + "-" + getVersion() + "." + getPackaging());
        if (parent != null) {
            build.setDirectory(parent.getBasedir().getAbsolutePath() + "/" + getArtifactId() + "/target");
            FileUtils.mkdir(build.getDirectory());
            build.setOutputDirectory(parent.getBasedir().getAbsolutePath() + "/" + getArtifactId() + "/target/classes");
            FileUtils.mkdir(build.getOutputDirectory());
            build.setTestOutputDirectory(parent.getBasedir().getAbsolutePath() + "/" + getArtifactId() + "/target/test-classes");
            FileUtils.mkdir(build.getTestOutputDirectory());
            Reporting reporting = new Reporting();
            reporting.setOutputDirectory(parent.getBasedir().getAbsolutePath() + "/" + getArtifactId() + "/target/site");
            FileUtils.mkdir(reporting.getOutputDirectory());
            model.setReporting(reporting);
        }
        model.setBuild(build);
    }
    return model;
}
Also used : Build(org.apache.maven.model.Build) Model(org.apache.maven.model.Model) Properties(java.util.Properties) Reporting(org.apache.maven.model.Reporting)

Example 2 with Reporting

use of org.apache.maven.model.Reporting in project maven-plugins by apache.

the class SiteInvoker method invokeSite.

/**
     * Invoke Maven for the <code>site</code> phase for a temporary Maven project using
     * <code>tmpReportingOutputDirectory</code> as <code>${project.reporting.outputDirectory}</code>.
     * This is a workaround to be sure that all site files have been correctly generated. <br/>
     * <b>Note 1</b>: the Maven Home should be defined in the <code>maven.home</code> Java system property
     * or defined in <code>M2_HOME</code> system env variables.
     * <b>Note 2</be>: we can't use <code>siteOutputDirectory</code> param from site plugin because some plugins
     * <code>${project.reporting.outputDirectory}</code> in their conf.
     *
     * @param project the MavenProject to invoke the site on. Not null.
     * @param tmpReportingOutputDirectory not null
     * @throws IOException if any
     */
public void invokeSite(MavenProject project, File tmpReportingOutputDirectory) throws IOException {
    String mavenHome = getMavenHome();
    if (StringUtils.isEmpty(mavenHome)) {
        // CHECKSTYLE_OFF: LineLength
        getLog().error("Could NOT invoke Maven because no Maven Home is defined. " + "You need to set the M2_HOME system env variable or a 'maven.home' Java system property.");
        // CHECKSTYLE_ON: LineLength
        return;
    }
    // invoker site parameters
    List goals = Collections.singletonList("site");
    Properties properties = new Properties();
    // to stop recursion
    properties.put("linkcheck.skip", "true");
    File invokerLog = FileUtils.createTempFile("invoker-site-plugin", ".txt", new File(project.getBuild().getDirectory()));
    // clone project and set a new reporting output dir
    MavenProject clone;
    try {
        clone = (MavenProject) project.clone();
    } catch (CloneNotSupportedException e) {
        IOException ioe = new IOException("CloneNotSupportedException: " + e.getMessage());
        ioe.setStackTrace(e.getStackTrace());
        throw ioe;
    }
    // MLINKCHECK-1
    if (clone.getOriginalModel().getReporting() == null) {
        clone.getOriginalModel().setReporting(new Reporting());
    }
    clone.getOriginalModel().getReporting().setOutputDirectory(tmpReportingOutputDirectory.getAbsolutePath());
    List profileIds = getActiveProfileIds(clone);
    // create the original model as tmp pom file for the invoker
    File tmpProjectFile = FileUtils.createTempFile("pom", ".xml", project.getBasedir());
    Writer writer = null;
    try {
        writer = WriterFactory.newXmlWriter(tmpProjectFile);
        clone.writeOriginalModel(writer);
        writer.close();
        writer = null;
    } finally {
        IOUtil.close(writer);
    }
    // invoke it
    try {
        invoke(tmpProjectFile, invokerLog, mavenHome, goals, profileIds, properties);
    } finally {
        if (!getLog().isDebugEnabled()) {
            tmpProjectFile.delete();
        }
    }
}
Also used : MavenProject(org.apache.maven.project.MavenProject) ArrayList(java.util.ArrayList) List(java.util.List) IOException(java.io.IOException) Properties(java.util.Properties) Reporting(org.apache.maven.model.Reporting) File(java.io.File) Writer(java.io.Writer)

Aggregations

Properties (java.util.Properties)2 Reporting (org.apache.maven.model.Reporting)2 File (java.io.File)1 IOException (java.io.IOException)1 Writer (java.io.Writer)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Build (org.apache.maven.model.Build)1 Model (org.apache.maven.model.Model)1 MavenProject (org.apache.maven.project.MavenProject)1