1
私のアプリケーションでアノテーションを探し、リフレクションによってマークされたクラスを読み込むGradleプラグインを作成する必要があります。 Gradleタスクのリフレクションの使い方
private void scanAnnotatedFields() {
ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false);
provider.addIncludeFilter(new AnnotationTypeFilter(MisEntity.class));
for (BeanDefinition beanDefinition : provider.findCandidateComponents("ru.org")) {
Class clazz = null;
try {
clazz = Class.forName(beanDefinition.getBeanClassName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println(clazz.toString());
}
}
しかし、この方法ではないターゲットアプリケーションから、私のGradleプラグインアプリケーションのクラスを読んで:私はGradleのタスクからメソッドを呼び出します。私は正しいクラスパスか多分何かを使う必要があると思う。私を助けてください。ありがとう。 P. S.私の英語は申し訳ありません。
あなたはそれを試用する例がありますか?おそらく、あなたは正しいクラスパスを設定する必要があります。 – Opal
お返事ありがとうございます@Opal。この例は、https://yadi.sk/d/o0_YNfZn3JFiZhからダウンロードできます。 3つのプロジェクトがあります。 1stは私のアプリケーションです。注釈は、注釈付きの図書館です。そしてmis-template-pluginはプラグインです。 BuildLogicFunctionalTest.javaファイルにプロジェクト1への絶対パスがあります。この例を準備している間、私は例外ClassNotFoundExceptionを求めました。プラグインは実行時にMisEntity3.classを表示しません。あなたが私を助けたら、私は非常に感謝します。 –