From a794bcf0d15573821a64b2e51b014de0f3d16109 Mon Sep 17 00:00:00 2001 From: sampadawagde Date: Sun, 28 Jun 2020 16:18:00 +0530 Subject: [PATCH] JAVA-49: new module for core maven plugins --- maven-modules/maven-plugins/.gitignore | 2 + maven-modules/maven-plugins/README.md | 11 ++ .../maven-plugins/custom-rule/pom.xml | 54 +++++++ .../com/baeldung/enforcer/MyCustomRule.java | 43 ++++++ .../input-resources/baeldung.png | Bin 0 -> 4318 bytes .../input-resources/baeldung.txt | 1 + .../input-resources/verifications.xml | 9 ++ .../maven-plugins/maven-enforcer/pom.xml | 75 ++++++++++ maven-modules/maven-plugins/pom.xml | 135 ++++++++++++++++++ 9 files changed, 330 insertions(+) create mode 100644 maven-modules/maven-plugins/.gitignore create mode 100644 maven-modules/maven-plugins/README.md create mode 100644 maven-modules/maven-plugins/custom-rule/pom.xml create mode 100644 maven-modules/maven-plugins/custom-rule/src/main/java/com/baeldung/enforcer/MyCustomRule.java create mode 100644 maven-modules/maven-plugins/input-resources/baeldung.png create mode 100644 maven-modules/maven-plugins/input-resources/baeldung.txt create mode 100644 maven-modules/maven-plugins/input-resources/verifications.xml create mode 100644 maven-modules/maven-plugins/maven-enforcer/pom.xml create mode 100644 maven-modules/maven-plugins/pom.xml diff --git a/maven-modules/maven-plugins/.gitignore b/maven-modules/maven-plugins/.gitignore new file mode 100644 index 0000000000..bae0b0d7ce --- /dev/null +++ b/maven-modules/maven-plugins/.gitignore @@ -0,0 +1,2 @@ +/output-resources +/.idea/ diff --git a/maven-modules/maven-plugins/README.md b/maven-modules/maven-plugins/README.md new file mode 100644 index 0000000000..4210a3bb20 --- /dev/null +++ b/maven-modules/maven-plugins/README.md @@ -0,0 +1,11 @@ +## Apache Maven + +This module contains articles about the core Maven plugins. Other Maven plugins (such as the Maven WAR Plugin) have their own dedicated modules. + +### Relevant Articles + +- [Guide to the Core Maven Plugins](https://www.baeldung.com/core-maven-plugins) +- [Maven Resources Plugin](https://www.baeldung.com/maven-resources-plugin) +- [The Maven Verifier Plugin](https://www.baeldung.com/maven-verifier-plugin) +- [The Maven Clean Plugin](https://www.baeldung.com/maven-clean-plugin) +- [Maven Enforcer Plugin](https://www.baeldung.com/maven-enforcer-plugin) diff --git a/maven-modules/maven-plugins/custom-rule/pom.xml b/maven-modules/maven-plugins/custom-rule/pom.xml new file mode 100644 index 0000000000..0fb551e71b --- /dev/null +++ b/maven-modules/maven-plugins/custom-rule/pom.xml @@ -0,0 +1,54 @@ + + + 4.0.0 + custom-rule + custom-rule + + + com.baeldung + maven-plugins + 0.0.1-SNAPSHOT + + + + + + 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 + ${plexus-container-default.version} + + + + + 3.0.0-M2 + 2.0.9 + 1.0-alpha-9 + + + diff --git a/maven-modules/maven-plugins/custom-rule/src/main/java/com/baeldung/enforcer/MyCustomRule.java b/maven-modules/maven-plugins/custom-rule/src/main/java/com/baeldung/enforcer/MyCustomRule.java new file mode 100644 index 0000000000..db636c2308 --- /dev/null +++ b/maven-modules/maven-plugins/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("com.baeldung")) { + throw new EnforcerRuleException("Project group id does not start with com.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-modules/maven-plugins/input-resources/baeldung.png b/maven-modules/maven-plugins/input-resources/baeldung.png new file mode 100644 index 0000000000000000000000000000000000000000..488f52e56e45d7b2b64cd688138f85f6a7dcc0e1 GIT binary patch literal 4318 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 + + + input-resources/baeldung.txt + Welcome + + + \ No newline at end of file diff --git a/maven-modules/maven-plugins/maven-enforcer/pom.xml b/maven-modules/maven-plugins/maven-enforcer/pom.xml new file mode 100644 index 0000000000..01f97a061e --- /dev/null +++ b/maven-modules/maven-plugins/maven-enforcer/pom.xml @@ -0,0 +1,75 @@ + + + 4.0.0 + maven-enforcer + maven-enforcer + + + com.baeldung + maven-plugins + 0.0.1-SNAPSHOT + + + + + + 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-modules/maven-plugins/pom.xml b/maven-modules/maven-plugins/pom.xml new file mode 100644 index 0000000000..43bcf1f422 --- /dev/null +++ b/maven-modules/maven-plugins/pom.xml @@ -0,0 +1,135 @@ + + + 4.0.0 + maven-plugins + 0.0.1-SNAPSHOT + maven-plugins + pom + + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + ../.. + + + + + + maven-resources-plugin + ${maven.resources.version} + + output-resources + + + input-resources + + *.png + + true + + + + + + maven-compiler-plugin + ${maven.compiler.version} + + ${java.version} + ${java.version} + + -Xlint:unchecked + + + + + maven-verifier-plugin + ${maven.verifier.version} + + input-resources/verifications.xml + + + + + verify + + + + + + maven-clean-plugin + ${maven.clean.version} + + + + output-resources + + + + + + + + + + default + + + + maven-surefire-plugin + ${maven.surefire.version} + + + DataTest.java + + + TestFail.java + DataCheck.java + + true + + + + + + + surefire + + + + maven-surefire-plugin + ${maven.surefire.version} + + + integration-test + + test + + + + none + + + **/*IntegrationTest + + + + + + + + + + + + 3.0.2 + 3.8.0 + 2.22.0 + 2.22.0 + 1.1 + 3.0.0 + 3.0.0 + + + \ No newline at end of file