OPAL-如何在本地机器的 Docker 中构建代码(遇到编译错误)?

OPAL-How to build code in Docker in local machine (faced compile error)?

我访问 Docker($docker pull mreif/fse2016:evaluation) 中的代码,代码可以编译并且 运行 在远程服务器中没有错误。当我将它下载到本地机器时,我在编译时遇到了一些错误(使用:sbt compile):

  1. [error] (*:update) sbt.ResolveException: 未解决的依赖关系: de.opal-project#abstract-interpretation-framework_2.11;0.9.0-SNAPSHOT: not

[我做了什么] 我在 "build.sbt":

中添加了下面几行
resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
  1. [错误] evaluation/src/main/scala/org/opalj/evaluation/EntryPointAndCallEdgeCountAnalysis.scala:90: 未找到:

[我做了什么] 我在 "build.sbt":

中添加了下面几行
 libraryDependencies += "de.opal-project" % "fixpoint-computations-framework-analyses_2.11" % "0.9.0-   SNAPSHOT"

3.[错误] /src/main/scala/org/opalj/evaluation/EntryPointAndCallEdgeCountAnalysis.scala:130: 未找到:值 LibraryEntryPointsAnalysis

我查看了相关代码,LibraryEntryPointsAnalysis确实导入了但是没有用

能否请您帮我确认编译源代码时是否遗漏了任何操作?

非常感谢!

它不起作用的原因是 OPAL 框架的版本不匹配。它找不到 "LibraryEntryPointAnalysis" 的原因是它已被重命名。

您必须选择:

  1. 使用 Docker 容器中使用的 OPAL 版本
    • 从版本标签 "ArtifactEvaluationFSE2016"
    • 检查 OPAL
    • 像评估项目一样从容器中复制 OPAl
  2. 使评估项目适应新的API
    • LibraryEntryPointsAnalysis 现在称为 EntryPointAnalysis
    • 您可能还需要修复其他重大更改

如果您想使用选项一,您必须自己构建 OPAL,因为评估版本未在 maven 上发布。