diff --git a/README.md b/README.md index eb28149..355f158 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,6 @@ You can also use the plugin configuration to define standard `resources`. You w </plugin> ``` -> Currently supported `resource` configuration elements: `directory` and `targetPath` > `maven.war.skip` does not work in the default `maven-war-plugin` version. ### Wildfly Enterprise Application Deployment diff --git a/pom.xml b/pom.xml index af2b938..d676cce 100644 --- a/pom.xml +++ b/pom.xml @@ -52,6 +52,11 @@ <version>${maven.version}</version> <scope>provided</scope> </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-filtering</artifactId> + <version>3.3.0</version> + </dependency> <dependency> <groupId>org.apache.maven.plugin-tools</groupId> <artifactId>maven-plugin-annotations</artifactId> diff --git a/src/main/java/com/inteligr8/wildfly/maven/goal/WarGoal.java b/src/main/java/com/inteligr8/wildfly/maven/goal/WarGoal.java index da128d3..e7f78e1 100644 --- a/src/main/java/com/inteligr8/wildfly/maven/goal/WarGoal.java +++ b/src/main/java/com/inteligr8/wildfly/maven/goal/WarGoal.java @@ -18,6 +18,7 @@ import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.List; import javax.xml.parsers.ParserConfigurationException; @@ -28,7 +29,11 @@ import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.shared.filtering.MavenFilteringException; +import org.apache.maven.shared.filtering.MavenResourcesExecution; +import org.apache.maven.shared.filtering.MavenResourcesFiltering; import org.codehaus.plexus.component.annotations.Component; +import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.util.FileUtils; import org.eclipse.aether.graph.Dependency; import org.eclipse.aether.graph.DependencyFilter; @@ -52,6 +57,9 @@ public class WarGoal extends AbstractDeploymentGoal { @Parameter protected List<Resource> resources; + @Requirement + private MavenResourcesFiltering filterer; + private DeploymentXmlBuilder deploymentXmlBuilder; private File webinfDirectory; private File libDirectory; @@ -124,15 +132,21 @@ public class WarGoal extends AbstractDeploymentGoal { } if (this.resources != null) { - for (Resource resource : this.resources) { - File sourceDirectory = new File(resource.getDirectory()); - File outputDirectory = resource.getTargetPath() == null ? this.outputDirectory : new File(this.outputDirectory, resource.getTargetPath()); - FileUtils.copyDirectoryStructure(sourceDirectory, outputDirectory); - } + MavenResourcesExecution execution = new MavenResourcesExecution( + this.resources, + this.outputDirectory, + this.project, + "utf-8", + Collections.emptyList(), + this.filterer.getDefaultNonFilteredFileExtensions(), + this.session); + this.filterer.filterResources(execution); } if (this.webappDirectory.exists()) FileUtils.copyDirectoryStructure(this.webappDirectory, this.outputDirectory); + } catch (MavenFilteringException mfe) { + throw new MojoExecutionException("A filtering issue occurred", mfe); } catch (IOException ie) { throw new MojoExecutionException("An I/O issue occurred", ie); }