gpt4 book ai didi

java - 自动解决代码分析的依赖关系

转载 作者:行者123 更新时间:2023-12-02 12:39:54 24 4
gpt4 key购买 nike

我有简单的 scala 代码和 Spoon 库:

class ExtractCodeDataTest extends FlatSpec {


it should "Run and not be empty" in{

val l = new Launcher()
l.addInputResource("./testData/owasp-security-logging")

l.buildModel()

val factory = l.getFactory
val allClass = factory.Class().getAll(true)

println(allClass)
}

}

我从 github 克隆了开源项目,但无法编译它。

The import org.junit cannot be resolved at /home/user/IdeaProjects/testSearch/testData/owasp-security-logging/owasp-security-logging-logback/src/test/java/org/owasp/security/logging/filter/SecurityMarkerFilterTest.java:3
spoon.compiler.ModelBuildingException: The import org.junit cannot be resolved at /home/user/IdeaProjects/testSearch/testData/owasp-security-logging/owasp-security-logging-logback/src/test/java/org/owasp/security/logging/filter/SecurityMarkerFilterTest.java:3
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.report(JDTBasedSpoonCompiler.java:583)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.reportProblems(JDTBasedSpoonCompiler.java:564)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.build(JDTBasedSpoonCompiler.java:120)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.build(JDTBasedSpoonCompiler.java:101)

我找不到任何自动解决依赖性的方法?如何针对一般项目修复它们 - 而不仅仅是这个特定项目?

最佳答案

勺子可以以两种不同的模式使用:

  1. 具有完整的类路径
  2. 在“无类路径模式”

使用第一种模式,您必须向 Spoon 提供分析项目所需的整个类路径,例如在命令行中使用参数 --source-classpath ,或使用 launcher.getEnvironment().setSourceClasspath(String[])。在这种模式下,您将拥有最多的信息来分析您的代码。

使用第二种模式,Spoon 将仅分析给定的源代码,而不会利用库中的信息。您将无法从外部库获取类的所有信息,也无法编译代码,但您仍然可以分析项目的代码源。您可以通过设置launcher.getEnvironement().setNoClasspath(true)来使用此模式。

请注意,Spoon 上提出了一个问题,以便能够自动分析 Maven 项目,考虑到 pom.xml 中给出的整个依赖项,请参阅:https://github.com/INRIA/spoon/issues/1396 .

关于java - 自动解决代码分析的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44990540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com