Ich habe eine POM-Datei (die von Eclipse ausgeführt wird), wo ich eine ANT-Task während der generate-sources
-Phase ausführen möchte. Basierend auf m2e documentation, in How to solve "Plugin execution not covered by lifecycle configuration" for Spring Data Maven Builds, Maven: execute antrun task during package und Where should be placed maven-compiler-plugin declaration: in <plugins> or <pluginManagement>?, ich auf diese Weise meine POM-Datei geschrieben:Maven (m2e) führt keine ant-Task aus
<?xml version="1.0" encoding="UTF-8"?>
<project>
...
<build>
<pluginManagement>
<plugins>
...
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<versionRange>[1.8,)</versionRange>
<goals>
<goal>generate-sources</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute/>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<!-- Plugin 1 -->
</plugin>
<plugin>
<!-- Plugin to be executed during generate-sources phase. -->
</plugin>
<plugin>
<!-- Should be in the generate-sources phase after the plugin above. -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>ant-test</id>
<configuration>
<task>
<echo message="ANT TEST" />
</task>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>
Was ich von meiner Lektüre verstanden wird, ist, dass ich sage mich zu fragen, um Maven folgende: Zuerst fragen Eclipse Plugin für Maven (m2e), damit das maven-antrun-plugin (Version 1.8 oder höher) während generate-sources
ausgeführt werden kann. Als nächstes, in der generate-sources
Phase und nach der Ausführung des ersten Plugins, rufen Sie das Ant-Plugin auf, um die Aufgabe auszuführen, die meine Nachricht echo.
Die Nachricht wird jedoch nicht angezeigt. Weder wenn ich nur das generate-sources
Ziel ausführe, noch wenn ich das install
Ziel ausführe.
ich folgen, wenn this sugestion here, und fügen Sie das <phase>
Element innerhalb <execution>
, wie hier:
<executions>
<execution>
<id>ant-test</id>
*<phase>generate-sources</phase>*
<configuration>
<task>
<echo message="ANT TEST" />
</task>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
Ich habe eine Eclipse-Fehlermeldung: Ausführung Plugin nicht durch Lifecycle-Konfiguration abgedeckt: org.apache.maven.plugins : maven-antrun-plugin: 1.8: run (Ausführung: ant-test, Phase: generate-sources). Here zeigt ein Beispiel, wo es keine spezifische <pluginManagement>
für Ant-Plugin gibt. Aber auch ich hatte keinen Erfolg.
Was fehlt hier?
Danke,
Rafael Afonso
Ändern Sie die Konfiguration in m2e von 'generate-sources' nach' run' ... – khmarbaise
Sorry, es hat nicht funktioniert. :( –