diff --git a/src/it/add-resource-skip/invoker.properties b/src/it/add-resource-skip/invoker.properties new file mode 100644 index 00000000..ff27f707 --- /dev/null +++ b/src/it/add-resource-skip/invoker.properties @@ -0,0 +1,2 @@ +invoker.goals = -X generate-sources +invoker.buildResult = success diff --git a/src/it/add-resource-skip/pom.xml b/src/it/add-resource-skip/pom.xml new file mode 100644 index 00000000..c7111b82 --- /dev/null +++ b/src/it/add-resource-skip/pom.xml @@ -0,0 +1,36 @@ + + + 4.0.0 + + build-helper + integration-test + 1.0-SNAPSHOT + + + + + @project.groupId@ + @project.artifactId@ + @project.version@ + + + integration-test + generate-sources + + add-resource + + + + + ${project.basedir}/not-existing + does-not-matter + + + true + + + + + + + diff --git a/src/it/add-resource-skip/verify.groovy b/src/it/add-resource-skip/verify.groovy new file mode 100644 index 00000000..2478f0d7 --- /dev/null +++ b/src/it/add-resource-skip/verify.groovy @@ -0,0 +1,9 @@ +File file = new File( basedir, "build.log" ); +assert file.exists(); + +String text = file.getText("utf-8"); + +assert text.contains("skipAddResource = true"); +assert text.contains("Skipping plugin execution!"); + +return true; diff --git a/src/it/add-source-skip/invoker.properties b/src/it/add-source-skip/invoker.properties new file mode 100644 index 00000000..ff27f707 --- /dev/null +++ b/src/it/add-source-skip/invoker.properties @@ -0,0 +1,2 @@ +invoker.goals = -X generate-sources +invoker.buildResult = success diff --git a/src/it/add-source-skip/pom.xml b/src/it/add-source-skip/pom.xml new file mode 100644 index 00000000..78d8083f --- /dev/null +++ b/src/it/add-source-skip/pom.xml @@ -0,0 +1,33 @@ + + + 4.0.0 + + build-helper + integration-test + 1.0-SNAPSHOT + + + + + @project.groupId@ + @project.artifactId@ + @project.version@ + + + integration-test + generate-sources + + add-source + + + + ${project.basedir}/not-existing + + true + + + + + + + diff --git a/src/it/add-source-skip/verify.groovy b/src/it/add-source-skip/verify.groovy new file mode 100644 index 00000000..b8ef38bb --- /dev/null +++ b/src/it/add-source-skip/verify.groovy @@ -0,0 +1,9 @@ +File file = new File( basedir, "build.log" ); +assert file.exists(); + +String text = file.getText("utf-8"); + +assert text.contains("skipAddSource = true"); +assert text.contains("Skipping plugin execution!"); + +return true; diff --git a/src/it/add-test-resource-skip/invoker.properties b/src/it/add-test-resource-skip/invoker.properties new file mode 100644 index 00000000..ff27f707 --- /dev/null +++ b/src/it/add-test-resource-skip/invoker.properties @@ -0,0 +1,2 @@ +invoker.goals = -X generate-sources +invoker.buildResult = success diff --git a/src/it/add-test-resource-skip/pom.xml b/src/it/add-test-resource-skip/pom.xml new file mode 100644 index 00000000..48a17fdd --- /dev/null +++ b/src/it/add-test-resource-skip/pom.xml @@ -0,0 +1,36 @@ + + + 4.0.0 + + build-helper + integration-test + 1.0-SNAPSHOT + + + + + @project.groupId@ + @project.artifactId@ + @project.version@ + + + integration-test + generate-sources + + add-test-resource + + + + + ${project.basedir}/not-existing + does-not-matter + + + true + + + + + + + diff --git a/src/it/add-test-resource-skip/verify.groovy b/src/it/add-test-resource-skip/verify.groovy new file mode 100644 index 00000000..0bed2b5f --- /dev/null +++ b/src/it/add-test-resource-skip/verify.groovy @@ -0,0 +1,9 @@ +File file = new File( basedir, "build.log" ); +assert file.exists(); + +String text = file.getText("utf-8"); + +assert text.contains("skipAddTestResource = true"); +assert text.contains("Skipping plugin execution!"); + +return true; diff --git a/src/it/add-test-source-skip/invoker.properties b/src/it/add-test-source-skip/invoker.properties new file mode 100644 index 00000000..ff27f707 --- /dev/null +++ b/src/it/add-test-source-skip/invoker.properties @@ -0,0 +1,2 @@ +invoker.goals = -X generate-sources +invoker.buildResult = success diff --git a/src/it/add-test-source-skip/pom.xml b/src/it/add-test-source-skip/pom.xml new file mode 100644 index 00000000..26bbb2a8 --- /dev/null +++ b/src/it/add-test-source-skip/pom.xml @@ -0,0 +1,33 @@ + + + 4.0.0 + + build-helper + integration-test + 1.0-SNAPSHOT + + + + + @project.groupId@ + @project.artifactId@ + @project.version@ + + + integration-test + generate-sources + + add-test-source + + + + ${project.basedir}/not-existing + + true + + + + + + + diff --git a/src/it/add-test-source-skip/verify.groovy b/src/it/add-test-source-skip/verify.groovy new file mode 100644 index 00000000..c0c7780a --- /dev/null +++ b/src/it/add-test-source-skip/verify.groovy @@ -0,0 +1,9 @@ +File file = new File( basedir, "build.log" ); +assert file.exists(); + +String text = file.getText("utf-8"); + +assert text.contains("skipAddTestSource = true"); +assert text.contains("Skipping plugin execution!"); + +return true; diff --git a/src/main/java/org/codehaus/mojo/buildhelper/AbstractAddResourceMojo.java b/src/main/java/org/codehaus/mojo/buildhelper/AbstractAddResourceMojo.java index fe65429f..76b17d0c 100644 --- a/src/main/java/org/codehaus/mojo/buildhelper/AbstractAddResourceMojo.java +++ b/src/main/java/org/codehaus/mojo/buildhelper/AbstractAddResourceMojo.java @@ -51,6 +51,13 @@ public abstract class AbstractAddResourceMojo extends AbstractMojo { * Main plugin execution */ public void execute() { + if (isSkip()) { + if (getLog().isInfoEnabled()) { + getLog().info("Skipping plugin execution!"); + } + return; + } + for (Resource resource : resources) { // Check for relative paths in the resource configuration. // http://maven.apache.org/plugin-developers/common-bugs.html#Resolving_Relative_Paths @@ -64,6 +71,8 @@ public void execute() { } } + protected abstract boolean isSkip(); + /** * Add the resource to the project. * diff --git a/src/main/java/org/codehaus/mojo/buildhelper/AddResourceMojo.java b/src/main/java/org/codehaus/mojo/buildhelper/AddResourceMojo.java index 26d269d2..f4129233 100644 --- a/src/main/java/org/codehaus/mojo/buildhelper/AddResourceMojo.java +++ b/src/main/java/org/codehaus/mojo/buildhelper/AddResourceMojo.java @@ -27,6 +27,7 @@ import org.apache.maven.model.Resource; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; /** * Add more resource directories to the POM. @@ -37,10 +38,22 @@ @Mojo(name = "add-resource", defaultPhase = LifecyclePhase.GENERATE_RESOURCES, threadSafe = true) public class AddResourceMojo extends AbstractAddResourceMojo { + /** + * Skip plugin execution. + * + * @since 3.5.0 + */ + @Parameter(property = "buildhelper.addresource.skip", defaultValue = "false") + private boolean skipAddResource; + public void addResource(Resource resource) { getProject().addResource(resource); if (getLog().isDebugEnabled()) { getLog().debug("Added resource: " + resource.getDirectory()); } } + + protected boolean isSkip() { + return skipAddResource; + } } diff --git a/src/main/java/org/codehaus/mojo/buildhelper/AddSourceMojo.java b/src/main/java/org/codehaus/mojo/buildhelper/AddSourceMojo.java index 6ea23161..5198b8b7 100644 --- a/src/main/java/org/codehaus/mojo/buildhelper/AddSourceMojo.java +++ b/src/main/java/org/codehaus/mojo/buildhelper/AddSourceMojo.java @@ -54,7 +54,22 @@ public class AddSourceMojo extends AbstractMojo { @Parameter(readonly = true, defaultValue = "${project}") private MavenProject project; + /** + * Skip plugin execution. + * + * @since 3.5.0 + */ + @Parameter(property = "buildhelper.addsource.skip", defaultValue = "false") + private boolean skipAddSource; + public void execute() { + if (skipAddSource) { + if (getLog().isInfoEnabled()) { + getLog().info("Skipping plugin execution!"); + } + return; + } + for (File source : sources) { this.project.addCompileSourceRoot(source.getAbsolutePath()); if (getLog().isInfoEnabled()) { diff --git a/src/main/java/org/codehaus/mojo/buildhelper/AddTestResourceMojo.java b/src/main/java/org/codehaus/mojo/buildhelper/AddTestResourceMojo.java index 4cfc9ea8..a1000caf 100644 --- a/src/main/java/org/codehaus/mojo/buildhelper/AddTestResourceMojo.java +++ b/src/main/java/org/codehaus/mojo/buildhelper/AddTestResourceMojo.java @@ -27,6 +27,7 @@ import org.apache.maven.model.Resource; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; /** * Add more test resource directories to the POM. @@ -37,6 +38,14 @@ @Mojo(name = "add-test-resource", defaultPhase = LifecyclePhase.GENERATE_TEST_RESOURCES, threadSafe = true) public class AddTestResourceMojo extends AbstractAddResourceMojo { + /** + * Skip plugin execution. + * + * @since 3.5.0 + */ + @Parameter(property = "buildhelper.addtestresource.skip", defaultValue = "false") + private boolean skipAddTestResource; + /** * Add the resource to the project. * @@ -48,4 +57,9 @@ public void addResource(Resource resource) { getLog().debug("Added test resource: " + resource.getDirectory()); } } + + @Override + protected boolean isSkip() { + return skipAddTestResource; + } } diff --git a/src/main/java/org/codehaus/mojo/buildhelper/AddTestSourceMojo.java b/src/main/java/org/codehaus/mojo/buildhelper/AddTestSourceMojo.java index b2ab781d..f79638c2 100644 --- a/src/main/java/org/codehaus/mojo/buildhelper/AddTestSourceMojo.java +++ b/src/main/java/org/codehaus/mojo/buildhelper/AddTestSourceMojo.java @@ -54,7 +54,22 @@ public class AddTestSourceMojo extends AbstractMojo { @Parameter(readonly = true, defaultValue = "${project}") private MavenProject project; + /** + * Skip plugin execution. + * + * @since 3.5.0 + */ + @Parameter(property = "buildhelper.addtestsource.skip", defaultValue = "false") + private boolean skipAddTestSource; + public void execute() { + if (skipAddTestSource) { + if (getLog().isInfoEnabled()) { + getLog().info("Skipping plugin execution!"); + } + return; + } + for (File source : sources) { this.project.addTestCompileSourceRoot(source.getAbsolutePath()); if (getLog().isInfoEnabled()) {