Frage

Ich habe eine lange Zeit Benutzer des Make-Build-System gewesen, aber ich habe zu beginnen entschieden, das Maven Build-System zu lernen. Während ich durch die meisten der Online-Dokumentation gelesen haben, keiner scheint mir die Analogien zu geben, die ich suche. Ich verstehe den Lebenszyklus des Systems, aber ich habe nicht einen Verweis auf Compilierungsschritt Abhängigkeiten sehen. Zum Beispiel möchte ich eine JFlex Grammatik als Teil der Kompilierung Lifecycle Schritt erzeugen. Derzeit sehe ich keine Möglichkeit, dass der Schritt zur Herstellung eines Pre-Compile-Phase Schritt. Dokumentation scheint auf diese beschränkt zu sein. Im Allgemeinen scheint das Konzept der Schritt Abhängigkeiten in Maven gebacken zu werden und erfordert ein Plugin für jede Änderung. Ist dies der Fall? Was bin ich, weil derzeit das Maven-Build-System in sehr begrenzt scheint, wie kann man Kompilationsschritte Setup.

War es hilfreich?

Lösung

Sie können alles in Maven tun. Es hat in der Regel eine Standard-Weise jede Sache zu tun, und dann können Sie Haken in und außer Kraft setzen, wenn Sie etwas Besonderes machen wollen. Manchmal dauert es eine Menge Stapel Overflowing und am Kopf kratzen, um es herauszufinden.

Es gibt sogar einen offiziellen JFlex Maven Plugin .

Wenn möglich, jemanden finden, der ein Maven Plugin gemacht hat, was Sie wollen. Auch wenn es nicht 100% richtig ist, kann es zumindest gibt Ihnen eine Idee, wie etwas machen Maven tun.

Minimal-Konfiguration

Diese Konfiguration erzeugt Java-Code eines Parsers für alle Grammatikdateien ( .jflex, * .jlex, * .lex, .flex) gefunden in src / main / jflex / und seine Unterverzeichnisse. Der Name und das Paket der erzeugten Java-Quellcode sind die in der Grammatik definiert diejenigen. Die erzeugte Java-Quellcode wird in Ziel / erzeugen Source / jflex, in Unterverzeichnissen nach der Java-Konvention über Paketnamen platziert. pom.xml

<project>
  <!-- ... -->
  <build>
    <plugins>
      <plugin>
        <groupId>de.jflex</groupId>
        <artifactId>jflex-maven-plugin</artifactId>
        <version>1.6.0</version>
        <executions>
          <execution>
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <!-- ... -->
  </build>
  <!-- ... -->
</project>

Das fühlt sich an wie Maven Weg, Dinge zu tun. Setzen Sie Ihre Sachen in den richtigen Ordner (src / main / flex), und dieses Plugin wird automatisch in Ihr Projekt. Wenn Sie do schicker individuelle Sachen, gibt es einige Optionen . aber Maven ist über die Konvention über Konfiguration begünstigt wird.

Andere Tipps

Um ehrlich zu sein ich denke, dass Ihre aktuelle Einstellung abbildet viel besser Ameise als zu Maven, und ich würde vorschlagen, mit, dass ab.

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