私はもっと良い方法があると確信しているが、ここで私はそれが動作するようになった方法は次のとおりです。
はあなたのモジョの上部にあるのjavadocに以下を追加します。 @requiresDependencyResolutionランタイム
はMavenProjectを追加パラメータ:
/**
* @parameter expression="${project}"
* @required
* @readonly
*/
private MavenProject project;
その後、実行時に依存関係を取得し、独自のクラスローダを行うことができます。
List runtimeClasspathElements = project.getRuntimeClasspathElements();
URL[] runtimeUrls = new URL[runtimeClasspathElements.size()];
for (int i = 0; i < runtimeClasspathElements.size(); i++) {
String element = (String) runtimeClasspathElements.get(i);
runtimeUrls[i] = new File(element).toURI().toURL();
}
URLClassLoader newLoader = new URLClassLoader(runtimeUrls,
Thread.currentThread().getContextClassLoader());
次に、あなたは、この新しいクラスローダを使ってクラスをロードすることができます
Class bundle = newLoader.loadClass("package.MyClass");
MyMojoのexecuteメソッドからPluginDescriptorへのハンドルを取得するにはどうすればよいですか? – Upgradingdave
ちょっとデイブ、私は私の答えを調整し、うまくいけばそれはあなたを助けます。 (あなたはセッターを必要としません、これは反射を経て設定されるためです)。 – codevour
ありがとうございました、私はどこでもドキュメントでそれを見つけることができませんでした。 – Upgradingdave