diff --git a/maven/.gitignore b/maven/.gitignore
index f843ae9109..bae0b0d7ce 100644
--- a/maven/.gitignore
+++ b/maven/.gitignore
@@ -1 +1,2 @@
-/output-resources
\ No newline at end of file
+/output-resources
+/.idea/
diff --git a/maven/custom-rule/pom.xml b/maven/custom-rule/pom.xml
new file mode 100644
index 0000000000..f76e0db11e
--- /dev/null
+++ b/maven/custom-rule/pom.xml
@@ -0,0 +1,69 @@
+
+
+
+ maven
+ com.baeldung
+ 0.0.1-SNAPSHOT
+
+ 4.0.0
+ custom-rule
+
+
+ 3.0.0-M2
+ 2.0.9
+
+
+
+
+
+
+ org.apache.maven.enforcer
+ enforcer-api
+ ${api.version}
+
+
+ org.apache.maven
+ maven-project
+ ${maven.version}
+
+
+ org.apache.maven
+ maven-core
+ ${maven.version}
+
+
+ org.apache.maven
+ maven-artifact
+ ${maven.version}
+
+
+ org.apache.maven
+ maven-plugin-api
+ ${maven.version}
+
+
+ org.codehaus.plexus
+ plexus-container-default
+ 1.0-alpha-9
+
+
+
+
+
+
+ maven-verifier-plugin
+ ${maven.verifier.version}
+
+ ../input-resources/verifications.xml
+ false
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/maven/custom-rule/src/main/java/com/baeldung/enforcer/MyCustomRule.java b/maven/custom-rule/src/main/java/com/baeldung/enforcer/MyCustomRule.java
new file mode 100644
index 0000000000..9b72f40bf1
--- /dev/null
+++ b/maven/custom-rule/src/main/java/com/baeldung/enforcer/MyCustomRule.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2019 PloyRef
+ * Created by Seun Matt
+ * on 19 - 2 - 2019
+ */
+
+package com.baeldung.enforcer;
+
+import org.apache.maven.enforcer.rule.api.EnforcerRule;
+import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
+import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
+import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
+
+public class MyCustomRule implements EnforcerRule {
+
+ public void execute(EnforcerRuleHelper enforcerRuleHelper) throws EnforcerRuleException {
+
+ try {
+
+ String groupId = (String) enforcerRuleHelper.evaluate("${project.groupId}");
+
+ if (groupId == null || !groupId.startsWith("org.baeldung")) {
+ throw new EnforcerRuleException("Project group id does not start with org.baeldung");
+ }
+
+ }
+ catch (ExpressionEvaluationException ex ) {
+ throw new EnforcerRuleException( "Unable to lookup an expression " + ex.getLocalizedMessage(), ex );
+ }
+ }
+
+ public boolean isCacheable() {
+ return false;
+ }
+
+ public boolean isResultValid(EnforcerRule enforcerRule) {
+ return false;
+ }
+
+ public String getCacheId() {
+ return null;
+ }
+}
diff --git a/maven/maven-enforcer/pom.xml b/maven/maven-enforcer/pom.xml
new file mode 100644
index 0000000000..d54471e66c
--- /dev/null
+++ b/maven/maven-enforcer/pom.xml
@@ -0,0 +1,74 @@
+
+
+
+ maven
+ com.baeldung
+ 0.0.1-SNAPSHOT
+
+ 4.0.0
+ maven-enforcer
+
+
+
+
+ org.apache.maven.plugins
+ maven-enforcer-plugin
+ 3.0.0-M2
+
+
+
+
+
+
+
+
+
+ enforce
+
+ enforce
+
+
+
+
+
+ 3.0
+ Invalid Maven version. It should, at least, be 3.0
+
+
+ 1.8
+
+
+ ui
+ WARN
+
+
+ cook
+ WARN
+
+
+ local,base
+ Missing active profiles
+ WARN
+
+
+
+
+
+
+
+
+
+ maven-verifier-plugin
+ ${maven.verifier.version}
+
+ ../input-resources/verifications.xml
+ false
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/maven/pom.xml b/maven/pom.xml
index 01fd28db74..942bf683e2 100644
--- a/maven/pom.xml
+++ b/maven/pom.xml
@@ -4,8 +4,12 @@
com.baeldung
maven
0.0.1-SNAPSHOT
- maven
- war
+
+ custom-rule
+ maven-enforcer
+
+ maven
+ pom