2

here で説明されているように、Maven プロジェクトを読み込んでいます。ソースルートを取得する方法を見つけようとしています。これにより、Mojo がそれらを使用できるように、持っている Java クラスを把握できるようになります。

getResources や getScriptSources など、いくつかのメソッドを試してみましたが、うまくいきませんでした。何か案が?

前もって感謝します!

編集:

私がやろうとしていることについて少し詳しく説明するように求められたので、ここに示します。

私が開発しているプラ​​グインは、プロジェクト内のソースを取得し、それらからテスト ケースを作成します。構成されていない限り、すべてのクラスのテストを生成したいと考えています。そのためには、適切に構成できるように、ソースがどこにあるかをどうにかして把握する必要があります。

それが役立つことを願っています。

ここにリポジトリがあります。後で公開する予定でしたが、要求に応じてソースを提供しました。

4

2 に答える 2

3

プラグイン開発者向けのドキュメントを読んだことがありますか?

そのページは、Mavenプロジェクトまたは効果的なpomを含むMojoDeveloperCookbookにリンクするPluginsCookbookリンクします経由でorg.apache.maven.project.MavenProjectオブジェクトにアクセスできます

/** @parameter default-value="${project}" */
private org.apache.maven.project.MavenProject mavenProject;

または、Java5アノテーションを介して

@Component
MavenProject project;

getCompileSourceRoots()を呼び出して、コンパイルに使用されるディレクトリのリストを取得できます。

また、包含/除外を設定する方法についてさらに読む必要があります。これを行う方法の例として、maven-compiler-pluginなどの他のプラグインを使用できます。

アノテーションを使用する場合は、pomがアノテーションの使用に従って構成されていること、およびクラスレベルでもアノテーションを使用していることを確認することが非常に重要です。javadocアノテーションの混合は機能しない可能性があります。

于 2012-11-26T22:53:36.233 に答える
0

最も簡単な解決策は、 mojoパラメーターを定義することだと思います。

/**
 * @parameter default-value="${project.build.sourceDirectory}"
 * @required
 */
private File sourceDirectory;

または新しい注釈ベースの定義

@Parameter(required = true, defaultValue="${project.build.sourceDirectory}"}
private File sourceDirectory;

これはあなたの望む結果を与えるはずです。

于 2012-11-20T07:00:37.350 に答える