diff --git a/src/it/projects/disabled-for-goal/invoker.properties b/src/it/projects/disabled-for-goal/invoker.properties
new file mode 100644
index 00000000..a0967a8a
--- /dev/null
+++ b/src/it/projects/disabled-for-goal/invoker.properties
@@ -0,0 +1,2 @@
+invoker.name = TEST for goal
+invoker.goals = -e generate-sources -D partial.disableOnGoal=generate-sources
diff --git a/src/it/projects/disabled-for-goal/pom.xml b/src/it/projects/disabled-for-goal/pom.xml
new file mode 100644
index 00000000..c932c7b9
--- /dev/null
+++ b/src/it/projects/disabled-for-goal/pom.xml
@@ -0,0 +1,39 @@
+
+
+ 4.0.0
+
+
+ child1
+ child2
+ child3
+ child4
+ child5
+ child6
+ child7
+
+
+ parent
+ parent
+ 1.0-SNAPSHOT
+ pom
+
+
+
+
+ com.lesfurets
+ partial-build-plugin
+ @project.version@
+ true
+
+ true
+ false
+ refs/heads/develop
+ refs/heads/feature/1
+
+
+
+
+
+
diff --git a/src/it/projects/disabled-for-goal/setup.groovy b/src/it/projects/disabled-for-goal/setup.groovy
new file mode 100644
index 00000000..e806c74e
--- /dev/null
+++ b/src/it/projects/disabled-for-goal/setup.groovy
@@ -0,0 +1,8 @@
+import com.lesfurets.maven.partial.mocks.ITHelper
+
+def testProjectBasedir = basedir as File
+def pbpBaseDir = sourceDir as String
+def pbpVersion = projectVersion as String
+new ITHelper(testProjectBasedir, pbpBaseDir, pbpVersion).setupTest()
+
+return true
\ No newline at end of file
diff --git a/src/it/projects/disabled-for-goal/verify.groovy b/src/it/projects/disabled-for-goal/verify.groovy
new file mode 100644
index 00000000..f11b881d
--- /dev/null
+++ b/src/it/projects/disabled-for-goal/verify.groovy
@@ -0,0 +1,23 @@
+import org.codehaus.plexus.util.FileUtils
+
+def file = new File(basedir, "build.log")
+String buildLog = FileUtils.fileRead(file)
+
+boolean verified = true
+verified &= buildLog.contains(" subchild2")
+verified &= buildLog.contains(" child3")
+verified &= buildLog.contains(" child4")
+verified &= buildLog.contains(" subchild41")
+
+verified &= buildLog.contains(" child1")
+verified &= buildLog.contains(" child2")
+verified &= buildLog.contains(" child5")
+verified &= buildLog.contains(" child6")
+verified &= buildLog.contains(" child7")
+verified &= buildLog.contains(" subchild1")
+verified &= buildLog.contains(" subchild42")
+verified &= buildLog.contains(" parent")
+
+verified &= buildLog.contains("Partial build was disable for goal: [generate-sources]")
+
+return verified;
diff --git a/src/main/java/com/lesfurets/maven/partial/core/Configuration.java b/src/main/java/com/lesfurets/maven/partial/core/Configuration.java
index 78355e6a..1c037708 100644
--- a/src/main/java/com/lesfurets/maven/partial/core/Configuration.java
+++ b/src/main/java/com/lesfurets/maven/partial/core/Configuration.java
@@ -49,6 +49,7 @@ public class Configuration {
public final boolean ignoreAllReactorProjects;
public final boolean useNativeGit;
public final String rootDirectory;
+ public final List disabledOnGoals;
@Inject
public Configuration(MavenSession session) throws IOException {
@@ -83,6 +84,7 @@ public Configuration(MavenSession session) throws IOException {
buildAnywaysPattern = Property.buildAnyways.getValue();
buildAnywaysProjects = getBuildAnywaysProjects(session, buildAnywaysPattern);
useNativeGit = Boolean.valueOf(Property.useNativeGit.getValue());
+ disabledOnGoals = separatePattern(Property.disableOnGoal.getValue());
rootDirectory = session.getExecutionRootDirectory();
} catch (Exception e) {
throw new RuntimeException(e);
diff --git a/src/main/java/com/lesfurets/maven/partial/core/Property.java b/src/main/java/com/lesfurets/maven/partial/core/Property.java
index e9445467..693ef2eb 100644
--- a/src/main/java/com/lesfurets/maven/partial/core/Property.java
+++ b/src/main/java/com/lesfurets/maven/partial/core/Property.java
@@ -3,6 +3,7 @@
public enum Property {
enabled("true"),
+ disableOnGoal(""),
repositorySshKey(""),
referenceBranch("refs/remotes/origin/develop"),
baseBranch("HEAD"),
diff --git a/src/main/java/com/lesfurets/maven/partial/extension/MavenLifecycleParticipant.java b/src/main/java/com/lesfurets/maven/partial/extension/MavenLifecycleParticipant.java
index 5d69f9dc..87820ae6 100644
--- a/src/main/java/com/lesfurets/maven/partial/extension/MavenLifecycleParticipant.java
+++ b/src/main/java/com/lesfurets/maven/partial/extension/MavenLifecycleParticipant.java
@@ -26,7 +26,9 @@ public void afterProjectsRead(MavenSession session) throws MavenExecutionExcepti
logger.info(configuration.toString());
try {
- if (configuration.enabled) {
+ if (configuration.disabledOnGoals.stream().anyMatch(disableForGoal -> session.getRequest().getGoals().contains(disableForGoal))) {
+ logger.info("Partial build was disable for goal: " + configuration.disabledOnGoals);
+ } else if (configuration.enabled) {
logger.info("Starting Partial build...");
injector.getInstance(UnchangedProjectsRemover.class).act();
} else {