maven-compiler-plugin用の新しいコンパイラを作成しました。このコンパイラはsrc/main/groovyとsrc/main/javaの両方でコンパイルソースを探すのが好きです。同様に、テストソースはsrc/test/groovyとsrc/test/javaの両方にあります。ビルドに新しいソースフォルダを自動的に追加するMaven Mojoを作成する
私は、ユーザーがビルドのための新しいソースフォルダを指定するには、彼らのポンポンを強化することができますが、それ以上20 lines of extra configuration in the pomを必要とするので、このプラグインを使用することが理想的ではないbuild-helper-maven-plugin
の承知しています。
追加のソースフォルダを自動的に構成するmojoを作成したいとします。
ここに私が作成したモジョがありますが、モジョが適時に実行されるようにする方法はわかりません。
/**
* @goal add-groovy-source
* @phase generate-sources
* @requiresDependencyResolution compile
* @execute phase="compile"
*/
public class AddGroovySourceFolders extends AbstractMojo {
/**
* @parameter expression="${project}"
* @required
* @readonly
*/
private MavenProject project;
public void execute() throws MojoExecutionException, MojoFailureException {
getLog().info("Adding /src/main/groovy to the list of source folders");
this.project.addCompileSourceRoot(project.getBasedir() + "/src/main/groovy");
}
}
繰り返しますが、私の目標は、ユーザーのポンポン構成の最小限量を確保することです。これにより、このmojoを含むプラグインへの依存性の宣言だけが必要であり、これ以上の設定は必要ありません。
ありがとうございました。私はこれを試してみるつもりです。 –
優れています。私は物事を働かせ始めている。しかし、もう少し質問があります。私は、各段階の目標のバージョンが明白であることをうれしくはない。私はそれらをcomponent.xmlから削除しました。あなたはそれに何か問題を見ますか?また、これらのコンポーネントはjarライフサイクルに固有のものです。私は他の面白いライフサイクル(例えば、戦争、メイヴンプラグインなど)のために物事をコピーする必要があると思います。その周りに何か方法がありますか? –
@AndrewEisenbergがバージョンを削除したということは、プラグインの最新バージョンが選ばれたと思うということです。あなたが望むものであってもなくてもかまいません。 Mavenのバージョンがどのようなものであっても、合理的に適切なプラグインのバージョンを使用して動作させることができます。否定的なのは、ユーザーがコンパイラプラグインの新しいバージョンを持っていれば、プラグインがMavenのデフォルトのプラグインではなくアクティブなときに使用されるということです。より多くのパッケージタイプ(war、ejbなど)をサポートする必要がある場合は、それぞれのライフサイクル設定をオーバーライドする必要があります。 – prunge