GNUMakeからのMavenへの移行
-
25-09-2019 - |
質問
私はメイクのビルドシステムの長時間のユーザーしてきたが、私はMavenのビルドシステムを学び始めることにしました。私は、オンラインドキュメントのほとんどを読みましたが、どれも私に私が探しているアナロジーを与えるように見えるん。私は、システムのライフサイクルを理解するが、私は、コンパイル段階の依存関係を一つの基準を参照してくださいしていません。例えば、私は、コンパイルのライフサイクルステップの一部としてJFlex文法を生成したいです。現在、私はそのステップ事前コンパイルの位相ステップ作るの手立てを見ません。ドキュメントは、これに限定されるように思えます。一般的には、ステップの依存関係の概念は、Mavenのに焼いているようですし、任意の変更のためのプラグインが必要です。これはそうですか?現在、Mavenのビルドシステムは非常にどのようにすることができ、セットアップのコンパイル手順に限られそうですので、私は、行方不明です。
解決
あなたはMavenの中で何かを行うことができます。これは、一般的に、それぞれのことを行うためのデフォルトの方法があり、あなたが何か特別なをしたいならば、あなたはにフックして上書きすることができます。時にはそれはそれを把握するために傷スタック溢れと頭の多くを取るます。
でもあり、公式 JFlexのMavenプラグインするます。
可能な限り、Mavenを作ったプラグインあなたがやりたいことしている人を見つけます。それは100%の権利ではない場合でも、それは少なくとも、あなたのmaven何かを作る方法についてのアイデアを与えることがあります。
の最小構成の
この設定は、すべての文法ファイル(の.jflex、* .jlex、* .lex、の.flex)のためのパーサのJavaのコードを生成するには、メイン/ jflex /及びその/ srcの中に見つかりましたサブディレクトリ。生成されたJavaソースコードの名前とパッケージは、文法で定義されたものです。生成されたJavaソースコードがパッケージ名でのJava規則以下のサブディレクトリには、ターゲット/生成されたソース/ 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 /メイン/フレックス)右のフォルダに自分のものを入れており、このプラグインは、自動的にあなたのプロジェクトにそれを構築します。あなたは DO手の込んだカスタムのものにしたい場合は、いくつかのオプションがありますする 。しかし、Mavenは設定より規約を好むがすべてです。
他のヒント
私はあなたの現在の考え方は、Mavenのよりもはるかに優れたアリにマップすることを考えて率直であるために、私はそれから始まるお勧めします。