Frage

Ich habe ein Java-Programm, die Java-Klassen für meine Anwendung erzeugt. Grundsätzlich dauert es in einer einfachen Spezifikation für eine Klasse und erzeugt eine spezielle Form von Java-Bean. Das möchte ich in meine Maven pom.xml integrieren, so dass, wenn die Eingabedatei geändert wird, Maven erzeugt automatisch die neue .java-Datei vor der Kompilierung-Phase von Maven.

Ich weiß, wie dies in machen triviale zu tun, aber ich habe nichts gefunden im Maven doc mit dieser Funktionalität.

War es hilfreich?

Lösung

Sie nicht bieten viele Informationen auf Ihrem Codegenerierung, aber man könnte den Code-Generator mit der exec-maven-Plugin (siehe Beispiele ). Die Konvention ist Quellen in ${project.build.directory}/generated-sources/<tool> zu erzeugen. Dann fügen Sie die generierten Quellen mit der build-Helfer-Plugin und seine add-sources mojo. Binden Sie alles, was auf der generate-sources Phase.

Ich zeige nur die Build-Helfer Sachen unter:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>add-mytool-sources</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>${project.build.directory}/generated-sources/mytool</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

Sie können auch ein einfaches Plugin schreiben Sie Ihren Generator zu wickeln. In diesem Fall haben Sie einen Blick auf den Leitfaden zur Erzeugung von Quellen .

PS:. Ich kann etwas verpasst, gibt es eine Art von Diskrepanz zwischen meiner Antwort und den Titel Ihrer Frage

Andere Tipps

Maven haben Phase " generieren-Quellen " für dieses

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top