Java 在inria Spoon中建立模型的快速方法

Java 在inria Spoon中建立模型的快速方法,java,javaparser,inria-spoon,Java,Javaparser,Inria Spoon,我使用解析Java项目,然后提取有关类、接口、字段和方法及其所有引用的信息 我正在使用下面的代码构建输入项目的模型 SpoonAPI spoonAPI = new Launcher(); spoonAPI.addInputResource(projectDirectory); spoonAPI.buildModel(); CtModel ctModel = spoonAPI.getModel(); 但是,buildModel()在大型项目中非常耗时 PS:我使用下面的代码,它比勺子更快 Pat

我使用解析Java项目,然后提取有关类、接口、字段和方法及其所有引用的信息

我正在使用下面的代码构建输入项目的模型

SpoonAPI spoonAPI = new Launcher();
spoonAPI.addInputResource(projectDirectory);
spoonAPI.buildModel();
CtModel ctModel = spoonAPI.getModel();
但是,buildModel()在大型项目中非常耗时

PS:我使用下面的代码,它比勺子更快

Path pathToSource = Paths.get(projectDirectory);
SourceRoot sourceRoot = new SourceRoot(pathToSource);
sourceRoot.tryToParse();
List<CompilationUnit> compilations = sourceRoot.getCompilationUnits();
Path pathToSource=Path.get(projectDirectory);
SourceRoot SourceRoot=新的SourceRoot(pathToSource);
sourceRoot.tryToParse();
列表编译=sourceRoot.getCompilationUnits();

我想知道是否有更快的方法在Spoon中创建CtModel。

您可以只为需要分析或转换的文件构建模型,而不是解析完整的源目录:

spoonAPI.addInputResource("path/Foo.java"); 
spoonAPI.addInputResource("path/Bar.java"); 

是的,JavaParser构建模型很快,但可能无法提供您需要的API。这是正确的,因为我在将当前应用程序(当前基于spoon)转换为JavaParser时遇到了一些问题。是的,但我需要解析整个项目。