Search in sources :

Example 1 with WarPackagingTask

use of org.apache.maven.plugins.war.packaging.WarPackagingTask in project maven-plugins by apache.

the class AbstractWarMojo method buildWebapp.

/**
     * Builds the webapp for the specified project with the new packaging task thingy.
     * Classes, libraries and tld files are copied to the <tt>webappDirectory</tt> during this phase.
     *
     * @param mavenProject the maven project
     * @param webapplicationDirectory the target directory
     * @throws MojoExecutionException if an error occurred while packaging the webapp
     * @throws MojoFailureException if an unexpected error occurred while packaging the webapp
     * @throws IOException if an error occurred while copying the files
     */
public void buildWebapp(MavenProject mavenProject, File webapplicationDirectory) throws MojoExecutionException, MojoFailureException, IOException {
    WebappStructure cache;
    if (useCache && cacheFile.exists()) {
        // CHECKSTYLE_OFF: LineLength
        cache = new WebappStructure(mavenProject.getDependencies(), webappStructureSerialier.fromXml(cacheFile));
    // CHECKSTYLE_ON: LineLength
    } else {
        cache = new WebappStructure(mavenProject.getDependencies(), null);
    }
    // CHECKSTYLE_OFF: LineLength
    final long startTime = System.currentTimeMillis();
    getLog().info("Assembling webapp [" + mavenProject.getArtifactId() + "] in [" + webapplicationDirectory + "]");
    final OverlayManager overlayManager = new OverlayManager(overlays, mavenProject, getDependentWarIncludes(), getDependentWarExcludes(), currentProjectOverlay);
    final List<WarPackagingTask> packagingTasks = getPackagingTasks(overlayManager);
    // CHECKSTYLE_ON: LineLength
    List<FileUtils.FilterWrapper> defaultFilterWrappers;
    try {
        MavenResourcesExecution mavenResourcesExecution = new MavenResourcesExecution();
        mavenResourcesExecution.setEscapeString(escapeString);
        mavenResourcesExecution.setSupportMultiLineFiltering(supportMultiLineFiltering);
        mavenResourcesExecution.setMavenProject(mavenProject);
        // if these are NOT set, just use the defaults, which are '${*}' and '@'.
        mavenResourcesExecution.setDelimiters(delimiters, useDefaultDelimiters);
        if (nonFilteredFileExtensions != null) {
            mavenResourcesExecution.setNonFilteredFileExtensions(nonFilteredFileExtensions);
        }
        if (filters == null) {
            filters = getProject().getBuild().getFilters();
        }
        mavenResourcesExecution.setFilters(filters);
        mavenResourcesExecution.setEscapedBackslashesInFilePath(escapedBackslashesInFilePath);
        mavenResourcesExecution.setMavenSession(this.session);
        mavenResourcesExecution.setEscapeString(this.escapeString);
        mavenResourcesExecution.setSupportMultiLineFiltering(supportMultiLineFiltering);
        defaultFilterWrappers = mavenFileFilter.getDefaultFilterWrappers(mavenResourcesExecution);
    } catch (MavenFilteringException e) {
        getLog().error("fail to build filering wrappers " + e.getMessage());
        throw new MojoExecutionException(e.getMessage(), e);
    }
    final WarPackagingContext context = new DefaultWarPackagingContext(webapplicationDirectory, cache, overlayManager, defaultFilterWrappers, getNonFilteredFileExtensions(), filteringDeploymentDescriptors, this.artifactFactory, resourceEncoding, useJvmChmod);
    for (WarPackagingTask warPackagingTask : packagingTasks) {
        warPackagingTask.performPackaging(context);
    }
    // Post packaging
    final List<WarPostPackagingTask> postPackagingTasks = getPostPackagingTasks();
    for (WarPostPackagingTask task : postPackagingTasks) {
        task.performPostPackaging(context);
    }
    getLog().info("Webapp assembled in [" + (System.currentTimeMillis() - startTime) + " msecs]");
}
Also used : OverlayManager(org.apache.maven.plugins.war.overlay.OverlayManager) MavenResourcesExecution(org.apache.maven.shared.filtering.MavenResourcesExecution) WarPackagingContext(org.apache.maven.plugins.war.packaging.WarPackagingContext) MojoExecutionException(org.apache.maven.plugin.MojoExecutionException) MavenFilteringException(org.apache.maven.shared.filtering.MavenFilteringException) WarPostPackagingTask(org.apache.maven.plugins.war.packaging.WarPostPackagingTask) WebappStructure(org.apache.maven.plugins.war.util.WebappStructure) WarPackagingTask(org.apache.maven.plugins.war.packaging.WarPackagingTask)

Example 2 with WarPackagingTask

use of org.apache.maven.plugins.war.packaging.WarPackagingTask in project maven-plugins by apache.

the class AbstractWarMojo method getPackagingTasks.

/**
     * Returns a <tt>List</tt> of the {@link org.apache.maven.plugins.war.packaging.WarPackagingTask}
     * instances to invoke to perform the packaging.
     *
     * @param overlayManager the overlay manager
     * @return the list of packaging tasks
     * @throws MojoExecutionException if the packaging tasks could not be built
     */
private List<WarPackagingTask> getPackagingTasks(OverlayManager overlayManager) throws MojoExecutionException {
    final List<WarPackagingTask> packagingTasks = new ArrayList<WarPackagingTask>();
    packagingTasks.add(new CopyUserManifestTask());
    if (useCache) {
        packagingTasks.add(new DependenciesAnalysisPackagingTask());
    }
    final List<Overlay> resolvedOverlays = overlayManager.getOverlays();
    for (Overlay overlay : resolvedOverlays) {
        if (overlay.isCurrentProject()) {
            packagingTasks.add(new WarProjectPackagingTask(webResources, webXml, containerConfigXML, currentProjectOverlay));
        } else {
            packagingTasks.add(new OverlayPackagingTask(overlay, currentProjectOverlay));
        }
    }
    return packagingTasks;
}
Also used : WarProjectPackagingTask(org.apache.maven.plugins.war.packaging.WarProjectPackagingTask) ArrayList(java.util.ArrayList) CopyUserManifestTask(org.apache.maven.plugins.war.packaging.CopyUserManifestTask) DependenciesAnalysisPackagingTask(org.apache.maven.plugins.war.packaging.DependenciesAnalysisPackagingTask) OverlayPackagingTask(org.apache.maven.plugins.war.packaging.OverlayPackagingTask) WarPackagingTask(org.apache.maven.plugins.war.packaging.WarPackagingTask)

Aggregations

WarPackagingTask (org.apache.maven.plugins.war.packaging.WarPackagingTask)2 ArrayList (java.util.ArrayList)1 MojoExecutionException (org.apache.maven.plugin.MojoExecutionException)1 OverlayManager (org.apache.maven.plugins.war.overlay.OverlayManager)1 CopyUserManifestTask (org.apache.maven.plugins.war.packaging.CopyUserManifestTask)1 DependenciesAnalysisPackagingTask (org.apache.maven.plugins.war.packaging.DependenciesAnalysisPackagingTask)1 OverlayPackagingTask (org.apache.maven.plugins.war.packaging.OverlayPackagingTask)1 WarPackagingContext (org.apache.maven.plugins.war.packaging.WarPackagingContext)1 WarPostPackagingTask (org.apache.maven.plugins.war.packaging.WarPostPackagingTask)1 WarProjectPackagingTask (org.apache.maven.plugins.war.packaging.WarProjectPackagingTask)1 WebappStructure (org.apache.maven.plugins.war.util.WebappStructure)1 MavenFilteringException (org.apache.maven.shared.filtering.MavenFilteringException)1 MavenResourcesExecution (org.apache.maven.shared.filtering.MavenResourcesExecution)1