1

我目前正在使用 的实现来执行此com.sun.source.util.Plugin操作,该方法具有将以下表达式添加到导入部分的方法import java.util.List;

private void generateImport(CompilationUnitTree compilationUnitTree) {
        var jcCompilationUnit = (JCTree.JCCompilationUnit) compilationUnitTree;
        List<JCTree> imports = jcCompilationUnit.defs.stream()
            .filter(def -> def.hasTag(JCTree.Tag.IMPORT))
            .collect(Collectors.toList());
        JCTree.JCImport classImport = treeMaker.Import(
            treeMaker.Select(
                treeMaker.Ident(names.fromString("java.util")),
                names.fromString("List")
            ),
            false
        );
        imports.add(classImport);
        jcCompilationUnit.defs = List.from(imports);
    }

名称- com.sun.tools.javac.util.Names& treeMaker的实例 - 的实例com.sun.tools.javac.tree.TreeMaker

我将我的插件作为一个依赖项添加到一个项目中A.javamvn package完成后,A.class丢失了,我只有一个空target目录。

看来我的解决方案是错误的。所以问题是:如何import <something>A.java编译时添加?

PS 我一直在寻找在LombokMapStructSpoon和其他不太知名的项目中添加导入的方法,但我没有找到类似的东西。

4

0 回答 0