Created
February 4, 2021 23:00
-
-
Save mcculls/d22f01b0e380fdd9f9e2ac1e1bba7dd0 to your computer and use it in GitHub Desktop.
Split demo into extension and mojo projects
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 3d07ee9d65f2b1f4f6a4c6f540cc3dc025be782b Mon Sep 17 00:00:00 2001 | |
From: Stuart McCulloch <mcculls@gmail.com> | |
Date: Thu, 4 Feb 2021 22:54:20 +0000 | |
Subject: [PATCH] Fix demo | |
--- | |
demo/pom.xml | 4 +- | |
extension-mojo/pom.xml | 87 -------------------- | |
.../fr/brouillard/oss/maven/InfoExtension.java | 32 -------- | |
.../java/fr/brouillard/oss/maven/InfoHolder.java | 18 ----- | |
.../java/fr/brouillard/oss/maven/InfoMojo.java | 29 ------- | |
extension/pom.xml | 51 ++++++++++++ | |
.../fr/brouillard/oss/maven/InfoExtension.java | 32 ++++++++ | |
.../java/fr/brouillard/oss/maven/InfoHolder.java | 18 +++++ | |
.../main/resources/META-INF/maven/extension.xml | 5 ++ | |
mojo/pom.xml | 93 ++++++++++++++++++++++ | |
.../fr/brouillard/oss/maven/mojo/InfoMojo.java | 30 +++++++ | |
11 files changed, 231 insertions(+), 168 deletions(-) | |
delete mode 100644 extension-mojo/pom.xml | |
delete mode 100644 extension-mojo/src/main/java/fr/brouillard/oss/maven/InfoExtension.java | |
delete mode 100644 extension-mojo/src/main/java/fr/brouillard/oss/maven/InfoHolder.java | |
delete mode 100644 extension-mojo/src/main/java/fr/brouillard/oss/maven/InfoMojo.java | |
create mode 100644 extension/pom.xml | |
create mode 100644 extension/src/main/java/fr/brouillard/oss/maven/InfoExtension.java | |
create mode 100644 extension/src/main/java/fr/brouillard/oss/maven/InfoHolder.java | |
create mode 100644 extension/src/main/resources/META-INF/maven/extension.xml | |
create mode 100644 mojo/pom.xml | |
create mode 100644 mojo/src/main/java/fr/brouillard/oss/maven/mojo/InfoMojo.java | |
diff --git a/demo/pom.xml b/demo/pom.xml | |
index 34f8ba7..fad20ef 100644 | |
--- a/demo/pom.xml | |
+++ b/demo/pom.xml | |
@@ -16,7 +16,7 @@ | |
<plugins> | |
<plugin> | |
<groupId>fr.brouillard.oss</groupId> | |
- <artifactId>maven-demo-extension</artifactId> | |
+ <artifactId>maven-demo-mojo</artifactId> | |
<version>0</version> | |
<executions> | |
<execution> | |
@@ -29,4 +29,4 @@ | |
</plugin> | |
</plugins> | |
</build> | |
-</project> | |
\ No newline at end of file | |
+</project> | |
diff --git a/extension-mojo/pom.xml b/extension-mojo/pom.xml | |
deleted file mode 100644 | |
index fa98c61..0000000 | |
--- a/extension-mojo/pom.xml | |
+++ /dev/null | |
@@ -1,87 +0,0 @@ | |
-<?xml version="1.0"?> | |
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
- <modelVersion>4.0.0</modelVersion> | |
- <groupId>fr.brouillard.oss</groupId> | |
- <artifactId>maven-demo-extension</artifactId> | |
- <version>0</version> | |
- <name>maven demo extension JSR330 and plugin</name> | |
- <packaging>maven-plugin</packaging> | |
- | |
- <properties> | |
- <maven.compiler.source>1.8</maven.compiler.source> | |
- <maven.compiler.target>1.8</maven.compiler.target> | |
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
- <maven.version>3.6.3</maven.version> | |
- </properties> | |
- <dependencies> | |
- <dependency> | |
- <groupId>javax.inject</groupId> | |
- <artifactId>javax.inject</artifactId> | |
- <version>1</version> | |
- </dependency> | |
- <dependency> | |
- <groupId>org.apache.maven</groupId> | |
- <artifactId>maven-core</artifactId> | |
- <version>${maven.version}</version> | |
- </dependency> | |
- <dependency> | |
- <groupId>org.apache.maven</groupId> | |
- <artifactId>maven-model-builder</artifactId> | |
- <version>${maven.version}</version> | |
- </dependency> | |
- <dependency> | |
- <groupId>org.apache.maven</groupId> | |
- <artifactId>maven-plugin-api</artifactId> | |
- <version>${maven.version}</version> | |
- </dependency> | |
- <dependency> | |
- <groupId>org.apache.maven.plugin-tools</groupId> | |
- <artifactId>maven-plugin-annotations</artifactId> | |
- <version>3.6.0</version> | |
- <scope>provided</scope> | |
- </dependency> | |
- </dependencies> | |
- | |
- <build> | |
- <plugins> | |
- <plugin> | |
- <groupId>org.eclipse.sisu</groupId> | |
- <artifactId>sisu-maven-plugin</artifactId> | |
- <version>0.3.4</version> | |
- <executions> | |
- <execution> | |
- <id>generate-index</id> | |
- <goals> | |
- <goal>main-index</goal> | |
- </goals> | |
- </execution> | |
- </executions> | |
- </plugin> | |
- <plugin> | |
- <groupId>org.apache.maven.plugins</groupId> | |
- <artifactId>maven-plugin-plugin</artifactId> | |
- <version>3.6.0</version> | |
- <configuration> | |
- <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound> | |
- </configuration> | |
- <executions> | |
- <execution> | |
- <id>mojo-descriptor</id> | |
- <goals> | |
- <goal>descriptor</goal> | |
- </goals> | |
- <phase>process-classes</phase> | |
- </execution> | |
- <execution> | |
- <id>help-goal</id> | |
- <goals> | |
- <goal>helpmojo</goal> | |
- </goals> | |
- <phase>process-classes</phase> | |
- </execution> | |
- </executions> | |
- </plugin> | |
- </plugins> | |
- </build> | |
-</project> | |
\ No newline at end of file | |
diff --git a/extension-mojo/src/main/java/fr/brouillard/oss/maven/InfoExtension.java b/extension-mojo/src/main/java/fr/brouillard/oss/maven/InfoExtension.java | |
deleted file mode 100644 | |
index fdeaffe..0000000 | |
--- a/extension-mojo/src/main/java/fr/brouillard/oss/maven/InfoExtension.java | |
+++ /dev/null | |
@@ -1,32 +0,0 @@ | |
-package fr.brouillard.oss.maven; | |
- | |
-import javax.inject.Inject; | |
-import javax.inject.Named; | |
-import javax.inject.Singleton; | |
- | |
-import org.apache.maven.AbstractMavenLifecycleParticipant; | |
-import org.apache.maven.MavenExecutionException; | |
-import org.apache.maven.execution.MavenSession; | |
-import org.codehaus.plexus.logging.Logger; | |
- | |
-@Named | |
-@Singleton | |
-public class InfoExtension extends AbstractMavenLifecycleParticipant { | |
- private final InfoHolder infoHolder; | |
- private Logger logger; | |
- | |
- @Inject | |
- public InfoExtension(Logger logger, InfoHolder infoHolder) { | |
- this.logger = logger; | |
- this.infoHolder = infoHolder; | |
- } | |
- | |
- @Override | |
- public void afterSessionStart(MavenSession session) throws MavenExecutionException { | |
- super.afterSessionStart(session); | |
- | |
- String information = "Build started at " + System.currentTimeMillis(); | |
- logger.info("extension generated information: " + information); | |
- infoHolder.setInformation(information); | |
- } | |
-} | |
diff --git a/extension-mojo/src/main/java/fr/brouillard/oss/maven/InfoHolder.java b/extension-mojo/src/main/java/fr/brouillard/oss/maven/InfoHolder.java | |
deleted file mode 100644 | |
index 5a95f2e..0000000 | |
--- a/extension-mojo/src/main/java/fr/brouillard/oss/maven/InfoHolder.java | |
+++ /dev/null | |
@@ -1,18 +0,0 @@ | |
-package fr.brouillard.oss.maven; | |
- | |
-import javax.inject.Named; | |
-import javax.inject.Singleton; | |
- | |
-@Named | |
-@Singleton | |
-public class InfoHolder { | |
- private String information; | |
- | |
- public String getInformation() { | |
- return information; | |
- } | |
- | |
- public void setInformation(String information) { | |
- this.information = information; | |
- } | |
-} | |
diff --git a/extension-mojo/src/main/java/fr/brouillard/oss/maven/InfoMojo.java b/extension-mojo/src/main/java/fr/brouillard/oss/maven/InfoMojo.java | |
deleted file mode 100644 | |
index 2019676..0000000 | |
--- a/extension-mojo/src/main/java/fr/brouillard/oss/maven/InfoMojo.java | |
+++ /dev/null | |
@@ -1,29 +0,0 @@ | |
-package fr.brouillard.oss.maven; | |
- | |
-import javax.inject.Inject; | |
- | |
-import org.apache.maven.plugin.AbstractMojo; | |
-import org.apache.maven.plugin.MojoExecutionException; | |
-import org.apache.maven.plugin.MojoFailureException; | |
-import org.apache.maven.plugins.annotations.LifecyclePhase; | |
-import org.apache.maven.plugins.annotations.Mojo; | |
- | |
-@Mojo(name = "info", defaultPhase = LifecyclePhase.VALIDATE, requiresProject = false) | |
-public class InfoMojo extends AbstractMojo { | |
- private InfoHolder infoHolder; | |
- | |
- @Inject | |
- public InfoMojo(InfoHolder infoHolder) { | |
- this.infoHolder = infoHolder; | |
- } | |
- | |
- @Override | |
- public void execute() throws MojoExecutionException, MojoFailureException { | |
- String information = infoHolder.getInformation(); | |
- if (information != null) { | |
- getLog().info("Information: " + information); | |
- } else { | |
- getLog().error("No information provided, Singleton injection might have failed"); | |
- } | |
- } | |
-} | |
diff --git a/extension/pom.xml b/extension/pom.xml | |
new file mode 100644 | |
index 0000000..7b9b1bb | |
--- /dev/null | |
+++ b/extension/pom.xml | |
@@ -0,0 +1,51 @@ | |
+<?xml version="1.0"?> | |
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
+ <modelVersion>4.0.0</modelVersion> | |
+ <groupId>fr.brouillard.oss</groupId> | |
+ <artifactId>maven-demo-extension</artifactId> | |
+ <version>0</version> | |
+ <name>maven demo extension</name> | |
+ | |
+ <properties> | |
+ <maven.compiler.source>1.8</maven.compiler.source> | |
+ <maven.compiler.target>1.8</maven.compiler.target> | |
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
+ <maven.version>3.6.3</maven.version> | |
+ </properties> | |
+ <dependencies> | |
+ <dependency> | |
+ <groupId>javax.inject</groupId> | |
+ <artifactId>javax.inject</artifactId> | |
+ <version>1</version> | |
+ </dependency> | |
+ <dependency> | |
+ <groupId>org.apache.maven</groupId> | |
+ <artifactId>maven-core</artifactId> | |
+ <version>${maven.version}</version> | |
+ </dependency> | |
+ <dependency> | |
+ <groupId>org.apache.maven</groupId> | |
+ <artifactId>maven-model-builder</artifactId> | |
+ <version>${maven.version}</version> | |
+ </dependency> | |
+ </dependencies> | |
+ | |
+ <build> | |
+ <plugins> | |
+ <plugin> | |
+ <groupId>org.eclipse.sisu</groupId> | |
+ <artifactId>sisu-maven-plugin</artifactId> | |
+ <version>0.3.4</version> | |
+ <executions> | |
+ <execution> | |
+ <id>generate-index</id> | |
+ <goals> | |
+ <goal>main-index</goal> | |
+ </goals> | |
+ </execution> | |
+ </executions> | |
+ </plugin> | |
+ </plugins> | |
+ </build> | |
+</project> | |
diff --git a/extension/src/main/java/fr/brouillard/oss/maven/InfoExtension.java b/extension/src/main/java/fr/brouillard/oss/maven/InfoExtension.java | |
new file mode 100644 | |
index 0000000..98c5af0 | |
--- /dev/null | |
+++ b/extension/src/main/java/fr/brouillard/oss/maven/InfoExtension.java | |
@@ -0,0 +1,32 @@ | |
+package fr.brouillard.oss.maven; | |
+ | |
+import javax.inject.Inject; | |
+import javax.inject.Named; | |
+import javax.inject.Singleton; | |
+ | |
+import org.apache.maven.AbstractMavenLifecycleParticipant; | |
+import org.apache.maven.MavenExecutionException; | |
+import org.apache.maven.execution.MavenSession; | |
+import org.codehaus.plexus.logging.Logger; | |
+ | |
+@Named | |
+@Singleton | |
+public class InfoExtension extends AbstractMavenLifecycleParticipant { | |
+ private final InfoHolder infoHolder; | |
+ private Logger logger; | |
+ | |
+ @Inject | |
+ public InfoExtension(Logger logger, InfoHolder infoHolder) { | |
+ this.logger = logger; | |
+ this.infoHolder = infoHolder; | |
+ } | |
+ | |
+ @Override | |
+ public void afterSessionStart(MavenSession session) throws MavenExecutionException { | |
+ super.afterSessionStart(session); | |
+ | |
+ String information = "Build started at " + System.currentTimeMillis(); | |
+ logger.info("extension generated information: " + information); | |
+ infoHolder.setInformation(information); | |
+ } | |
+} | |
diff --git a/extension/src/main/java/fr/brouillard/oss/maven/InfoHolder.java b/extension/src/main/java/fr/brouillard/oss/maven/InfoHolder.java | |
new file mode 100644 | |
index 0000000..5a95f2e | |
--- /dev/null | |
+++ b/extension/src/main/java/fr/brouillard/oss/maven/InfoHolder.java | |
@@ -0,0 +1,18 @@ | |
+package fr.brouillard.oss.maven; | |
+ | |
+import javax.inject.Named; | |
+import javax.inject.Singleton; | |
+ | |
+@Named | |
+@Singleton | |
+public class InfoHolder { | |
+ private String information; | |
+ | |
+ public String getInformation() { | |
+ return information; | |
+ } | |
+ | |
+ public void setInformation(String information) { | |
+ this.information = information; | |
+ } | |
+} | |
diff --git a/extension/src/main/resources/META-INF/maven/extension.xml b/extension/src/main/resources/META-INF/maven/extension.xml | |
new file mode 100644 | |
index 0000000..98af7d6 | |
--- /dev/null | |
+++ b/extension/src/main/resources/META-INF/maven/extension.xml | |
@@ -0,0 +1,5 @@ | |
+<extension> | |
+ <exportedPackages> | |
+ <exportedPackage>fr.brouillard.oss.maven.*</exportedPackage> | |
+ </exportedPackages> | |
+</extension> | |
diff --git a/mojo/pom.xml b/mojo/pom.xml | |
new file mode 100644 | |
index 0000000..30ed57f | |
--- /dev/null | |
+++ b/mojo/pom.xml | |
@@ -0,0 +1,93 @@ | |
+<?xml version="1.0"?> | |
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
+ <modelVersion>4.0.0</modelVersion> | |
+ <groupId>fr.brouillard.oss</groupId> | |
+ <artifactId>maven-demo-mojo</artifactId> | |
+ <version>0</version> | |
+ <name>maven demo plugin</name> | |
+ <packaging>maven-plugin</packaging> | |
+ | |
+ <properties> | |
+ <maven.compiler.source>1.8</maven.compiler.source> | |
+ <maven.compiler.target>1.8</maven.compiler.target> | |
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
+ <maven.version>3.6.3</maven.version> | |
+ </properties> | |
+ <dependencies> | |
+ <dependency> | |
+ <groupId>javax.inject</groupId> | |
+ <artifactId>javax.inject</artifactId> | |
+ <version>1</version> | |
+ </dependency> | |
+ <dependency> | |
+ <groupId>org.apache.maven</groupId> | |
+ <artifactId>maven-core</artifactId> | |
+ <version>${maven.version}</version> | |
+ </dependency> | |
+ <dependency> | |
+ <groupId>org.apache.maven</groupId> | |
+ <artifactId>maven-model-builder</artifactId> | |
+ <version>${maven.version}</version> | |
+ </dependency> | |
+ <dependency> | |
+ <groupId>org.apache.maven</groupId> | |
+ <artifactId>maven-plugin-api</artifactId> | |
+ <version>${maven.version}</version> | |
+ </dependency> | |
+ <dependency> | |
+ <groupId>org.apache.maven.plugin-tools</groupId> | |
+ <artifactId>maven-plugin-annotations</artifactId> | |
+ <version>3.6.0</version> | |
+ <scope>provided</scope> | |
+ </dependency> | |
+ <dependency> | |
+ <groupId>fr.brouillard.oss</groupId> | |
+ <artifactId>maven-demo-extension</artifactId> | |
+ <version>0</version> | |
+ <scope>provided</scope> | |
+ </dependency> | |
+ </dependencies> | |
+ | |
+ <build> | |
+ <plugins> | |
+ <plugin> | |
+ <groupId>org.eclipse.sisu</groupId> | |
+ <artifactId>sisu-maven-plugin</artifactId> | |
+ <version>0.3.4</version> | |
+ <executions> | |
+ <execution> | |
+ <id>generate-index</id> | |
+ <goals> | |
+ <goal>main-index</goal> | |
+ </goals> | |
+ </execution> | |
+ </executions> | |
+ </plugin> | |
+ <plugin> | |
+ <groupId>org.apache.maven.plugins</groupId> | |
+ <artifactId>maven-plugin-plugin</artifactId> | |
+ <version>3.6.0</version> | |
+ <configuration> | |
+ <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound> | |
+ </configuration> | |
+ <executions> | |
+ <execution> | |
+ <id>mojo-descriptor</id> | |
+ <goals> | |
+ <goal>descriptor</goal> | |
+ </goals> | |
+ <phase>process-classes</phase> | |
+ </execution> | |
+ <execution> | |
+ <id>help-goal</id> | |
+ <goals> | |
+ <goal>helpmojo</goal> | |
+ </goals> | |
+ <phase>process-classes</phase> | |
+ </execution> | |
+ </executions> | |
+ </plugin> | |
+ </plugins> | |
+ </build> | |
+</project> | |
diff --git a/mojo/src/main/java/fr/brouillard/oss/maven/mojo/InfoMojo.java b/mojo/src/main/java/fr/brouillard/oss/maven/mojo/InfoMojo.java | |
new file mode 100644 | |
index 0000000..11f5a04 | |
--- /dev/null | |
+++ b/mojo/src/main/java/fr/brouillard/oss/maven/mojo/InfoMojo.java | |
@@ -0,0 +1,30 @@ | |
+package fr.brouillard.oss.maven.mojo; | |
+ | |
+import javax.inject.Inject; | |
+ | |
+import fr.brouillard.oss.maven.InfoHolder; | |
+import org.apache.maven.plugin.AbstractMojo; | |
+import org.apache.maven.plugin.MojoExecutionException; | |
+import org.apache.maven.plugin.MojoFailureException; | |
+import org.apache.maven.plugins.annotations.LifecyclePhase; | |
+import org.apache.maven.plugins.annotations.Mojo; | |
+ | |
+@Mojo(name = "info", defaultPhase = LifecyclePhase.VALIDATE, requiresProject = false) | |
+public class InfoMojo extends AbstractMojo { | |
+ private InfoHolder infoHolder; | |
+ | |
+ @Inject | |
+ public InfoMojo(InfoHolder infoHolder) { | |
+ this.infoHolder = infoHolder; | |
+ } | |
+ | |
+ @Override | |
+ public void execute() throws MojoExecutionException, MojoFailureException { | |
+ String information = infoHolder.getInformation(); | |
+ if (information != null) { | |
+ getLog().info("Information: " + information); | |
+ } else { | |
+ getLog().error("No information provided, Singleton injection might have failed"); | |
+ } | |
+ } | |
+} | |
-- | |
2.3.2 (Apple Git-55) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment