You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2021/09/26 22:43:42 UTC
[maven-plugin-tools] 01/01: [MPLUGIN-351] m2e support
This is an automated email from the ASF dual-hosted git repository.
slachiewicz pushed a commit to branch MPLUGIN-351
in repository https://gitbox.apache.org/repos/asf/maven-plugin-tools.git
commit 1a7b0ec308ac49a296684d9711fbddeb6af161b4
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Wed Aug 11 11:30:46 2021 +0200
[MPLUGIN-351] m2e support
incremental builds are not supported
Closes #36
---
maven-plugin-plugin/pom.xml | 7 +++++
.../maven/plugin/plugin/AbstractGeneratorMojo.java | 10 +++++--
.../META-INF/m2e/lifecycle-mapping-metadata.xml | 34 ++++++++++++++++++++++
3 files changed, 49 insertions(+), 2 deletions(-)
diff --git a/maven-plugin-plugin/pom.xml b/maven-plugin-plugin/pom.xml
index 5eb117d..1377acb 100644
--- a/maven-plugin-plugin/pom.xml
+++ b/maven-plugin-plugin/pom.xml
@@ -166,6 +166,13 @@
</exclusions>
</dependency>
+ <!-- for m2e support: https://www.eclipse.org/m2e/documentation/m2e-making-maven-plugins-compat.html -->
+ <dependency>
+ <groupId>org.sonatype.plexus</groupId>
+ <artifactId>plexus-build-api</artifactId>
+ <version>0.0.7</version>
+ </dependency>
+
<!-- needed for it tests -->
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
diff --git a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java
index 2709b24..203bac2 100644
--- a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java
+++ b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java
@@ -39,6 +39,7 @@ import org.apache.maven.tools.plugin.generator.GeneratorUtils;
import org.apache.maven.tools.plugin.scanner.MojoScanner;
import org.codehaus.plexus.component.repository.ComponentDependency;
import org.codehaus.plexus.util.ReaderFactory;
+import org.sonatype.plexus.build.incremental.BuildContext;
import java.io.File;
import java.util.Arrays;
@@ -67,6 +68,9 @@ public abstract class AbstractGeneratorMojo
@Component
protected MojoScanner mojoScanner;
+ @Component
+ protected BuildContext buildContext;
+
/**
* The file encoding of the source files.
*
@@ -254,9 +258,11 @@ public abstract class AbstractGeneratorMojo
mojoScanner.populatePluginDescriptor( request );
- getOutputDirectory().mkdirs();
+ File outputDirectory = getOutputDirectory();
+ outputDirectory.mkdirs();
- createGenerator().execute( getOutputDirectory(), request );
+ createGenerator().execute( outputDirectory, request );
+ buildContext.refresh( outputDirectory );
}
catch ( GeneratorException e )
{
diff --git a/maven-plugin-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml b/maven-plugin-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml
new file mode 100644
index 0000000..6c6ee1a
--- /dev/null
+++ b/maven-plugin-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml
@@ -0,0 +1,34 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
+ ~ contributor license agreements. See the NOTICE file distributed with
+ ~ this work for additional information regarding copyright ownership.
+ ~ The ASF licenses this file to You under the Apache License, Version 2.0
+ ~ (the "License"); you may not use this file except in compliance with
+ ~ the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+<lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <goals>
+ <goal>descriptor</goal>
+ <goal>helpmojo</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <execute>
+ <runOnIncremental>false</runOnIncremental>
+ <runOnConfiguration>false</runOnConfiguration>
+ </execute>
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+</lifecycleMappingMetadata>
\ No newline at end of file