0

プロジェクトのソースにアクセスしていくつかのファイルを生成することを期待するgradleプラグインを作成しました。Java からプロジェクトを実行するとすべてが機能しますが、プラグインを介して同じことを実行しようとすると機能しません。プロジェクトのソースは表示されません。

gradle では、ソースがビルドスクリプトに表示されないため、プラグインにも表示されないというのは本当ですか? それらをプラグインで利用できるようにすることは可能ですか?

このクラスは、クラスのリストを取得するために使用されます。

public class ClassFinder {
    private final List<? extends Class<?>> classes;

    public ClassFinder(String packageToScan) {
        ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false);
        provider.addIncludeFilter(new RegexPatternTypeFilter(Pattern.compile(".*")));
        Set<BeanDefinition> classes = provider.findCandidateComponents(packageToScan);

        this.classes = classes.stream()
                .map(bean -> {
                    try {
                        return Class.forName(bean.getBeanClassName());
                    } catch (ClassNotFoundException e) {
                        throw new IllegalStateException(e);
                    }
                })
                .collect(Collectors.toList());
    }

    ...
}

mainメソッドまたはプラグインで使用できます。そのmain中に、現在のプロジェクトのすべてのクラスが見つかります。プラグインでは何も見つかりません (ライブラリを除く)。

4

1 に答える 1