3

Maven エンドユーザーは、「コンパイル」フェーズでコンパイルされるソース ディレクトリのリストにディレクトリを追加するのは簡単です。build-helper-maven-plugin アプローチを使用します。

ただし、私自身のカスタム プラグインでは、これをプログラムで実行したいと考えています。私のプラグインは、いくつかの Java コードを生成します。次に、出力ディレクトリ (生成された .java ファイルを含む) をソース パスのリストに追加したいと思います。

現時点では、すべての POM で build-helper-maven-plugin 構成を手動で設定して、生成しているファイルをコンパイルする必要があります。

Maven API のどの部分を見るべきかについての指針はありますか? 私の検索では、build-helper-maven-plugin アプローチで解決されるエンドユーザーからのクエリのみが得られました。

4

1 に答える 1

4

私の答えを見つけるために、パスにソースを追加することがわかっているANTLR mavenプラグインのソースコードを調べました。AbstractAntlrMojoを参照してください。

MavenProject解決策は、Mojo にメンバー変数を追加し、それをプロジェクトにバインドする式を使用することです。

@Parameter(defaultValue="${project}")
private MavenProject project;

プロジェクトへの参照を取得したら、それは単純なメソッド呼び出しです。

project.addCompileSourceRoot("<DIRECTORY-PATH-HERE>");

これにより、生成されたコードを格納する新しいディレクトリが確実にコンパイルされます。

于 2013-11-13T12:33:40.610 に答える