【问题标题】:A faster way to build model in inria Spoon在 inria Spoon 中构建模型的更快方法
【发布时间】:2020-12-20 05:52:52
【问题描述】:

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

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

SpoonAPI spoonAPI = new Launcher();
spoonAPI.addInputResource(projectDirectory);
spoonAPI.buildModel();
CtModel ctModel = spoonAPI.getModel();

但是,buildModel()大型项目中非常耗时。

PS:我使用JavaParser 使用下面的代码,它比Spoon 更快。

Path pathToSource = Paths.get(projectDirectory);
SourceRoot sourceRoot = new SourceRoot(pathToSource);
sourceRoot.tryToParse();
List<CompilationUnit> compilations = sourceRoot.getCompilationUnits();

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

【问题讨论】:

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

标签: java javaparser inria-spoon


【解决方案1】:

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

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

【讨论】:

  • 是的,但我需要解析整个项目。
猜你喜欢
  • 2019-01-15
  • 1970-01-01
  • 1970-01-01
  • 2018-12-29
  • 2015-11-28
  • 1970-01-01
  • 2011-10-06
  • 2015-07-11
  • 1970-01-01
相关资源
最近更新 更多