私は長い間Makeビルドシステムを使用してきましたが、Mavenビルドシステムの学習を開始することにしました。私はほとんどのオンラインドキュメントを読みましたが、私が探している類推を私に与えるものはないようです。システムのライフサイクルは理解していますが、コンパイルステップの依存関係についての参照は1つもありません。たとえば、コンパイルライフサイクルステップの一部としてJFlex文法を生成したいと思います。現在、そのステップをプリコンパイルフェーズのステップにする方法はありません。ドキュメントはこれに限定されているようです。一般に、ステップ依存関係の概念はMavenに組み込まれているようであり、変更するにはプラグインが必要です。これは本当ですか?現在、Mavenビルドシステムでは、コンパイル手順の設定方法が非常に限られているように思われるため、何が欠けていますか。
2 に答える
Mavenでは何でもできます。通常、それぞれのことを行うデフォルトの方法があり、特別なことをしたい場合は、フックしてオーバーライドできます。時々、それを理解するために多くのスタックオーバーフローと頭を掻く必要があります。
公式のJFlexMavenプラグインもあります。
可能な限り、Mavenプラグインにあなたが望むことをさせた人を見つけてください。100%正しくない場合でも、少なくともMavenに何かをさせる方法についてのアイデアが得られる可能性があります。
最小限の構成
この構成では、src / main / jflex /およびそのサブディレクトリにあるすべての文法ファイル( .jflex、*。jlex、*。lex、 .flex)のパーサーのJavaコードが生成されます。生成されたJavaソースコードの名前とパッケージは、文法で定義されているものです。生成されたJavaソースコードは、パッケージ名に関するJava規則に従って、サブディレクトリのtarget /generated-source/jflexに配置されます。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>
これは、物事を行うためのMavenの方法のように感じます。適切なフォルダ(src / main / flex)にコンテンツを配置すると、このプラグインによってプロジェクトに自動的にビルドされます。より洗練されたカスタム作業を行いたい場合は、いくつかのオプションがあります。しかし、Mavenは、設定より規約を優先することを目的としています。
率直に言って、あなたの現在の考え方は、MavenよりもAntの方がはるかに優れていると思います。それから始めることをお勧めします。