Ich sage es sofort: Ich habe nie mit Maven/Groovy gearbeitet, aber vor kurzem bekam ich den Job, ein Skript zu schreiben, das automatisch eine Enum aus einer .properties-Datei erstellt .Keine solche Eigenschaft: pom für Klasse: Script1
Ich benutze das GMavenPlus Plugin dafür. Ich habe das Skript bereits nach der Antwort auf this Frage geschrieben. Der Grund, warum ich nicht die gleiche Pom wie in der Antwort verwenden kann, ist, weil es GMaven verwendet, die eingestellt wurde.
Jetzt, wenn ich versuche, es zu laufen über cmd ich den Fehler
Failed to execute goal org.codehaus.gmavenplus:gmavenplus-plugin:1.5:execute <create-enum> on project gui: Error occurred while calling a method on a Groovy class
from classpath. InvocationTargetException: No such property: pom for class: Script1 -> [Help 1]
bekommen Und hier sind die wichtigen Teile meines pom.xml:
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>create-enum</id>
<phase>generate-sources</phase>
<goals>
<goal>execute</goal>
</goals>
</execution>
</executions>
<configuration>
<scripts>
<script><![CDATA[
import java.io.File
import com.cclsd.gdg.client.EnumGenerator
File dir = new File(pom.basedir,
"src/main/resources/com/cclsd/gdg/client")
new EnumGenerator(
new File(pom.build.directory,
"generated-sources/enums"),
new File(dir,
"properties/config.properties"),
new File(dir,
"EnumTemplate.txt"),
"com.cclsd.gdg.client.data",
"PropertyEnum"
)
]]></script>
</scripts>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<!-- any version of Groovy \>= 1.5.0 should work here -->
<version>2.4.7</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings
only. It has no influence on the Maven build itself. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.codehaus.gmavenplus
</groupId>
<artifactId>
gmavenplus-plugin
</artifactId>
<versionRange>
[1.0.0,)
</versionRange>
<goals>
<goal>execute</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnIncremental>false</runOnIncremental>
</execute>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
Hinweis : Alles unter dem pluginmanagement-Tag, das ich von the official m2e site bekommen habe, sollte dazu führen, dass das Skript in der generate-sources-Phase
ausgeführt wird 0Ich brauche wirklich jemanden, der mir hier hilft, ich konnte buchstäblich keine einzige Sache auf Google über diesen Fehler finden. Auch ein umfassendes Tutorial über das Ausführen von Skripten in Maven wäre schön.
Haben Sie einen schönen Tag ~ Crowley
Edit: es zeigt auch die Warnung Der POM für ungültig ist, transitiv Tendenzen (falls vorhanden) nicht zur Verfügung, die Debug-Protokollierung für mehr Details
Nun, das ist demütigend. Jedenfalls danke für die schnelle Antwort :) –