2016-12-08 32 views
0

我在Docker中访问代码($ docker pull mreif/fse2016:evaluation),代码可以在远程服务器中编译和运行而不会出错。虽然我把它下载到本地机器上,我遭受了一些错误,在编译(使用:SBT编译):OPAL-如何在本地机器中构建Docker代码(面临编译错误)?

  1. [错误](*:更新)sbt.ResolveException:未解析的依赖性:de.opal项目#摘要:解释-framework_2.11; 0.9.0-SNAPSHOT:不

[我所做]我添加后续线变成 “build.sbt”:

resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots" 
  • [error]评估/ src/main/scala/org/opalj/evaluation/EntryPointAndCallEdgeCountAna lysis.scala:90:未发现:
  • [我做了什么]我补充后续行成 “build.sbt”:

    libraryDependencies += "de.opal-project" % "fixpoint-computations-framework-analyses_2.11" % "0.9.0- SNAPSHOT" 
    

    3. [错误]/src目录/主/斯卡拉/org/opalj/evaluation/EntryPointAndCallEdgeCountAnalysis.scala:130:not found:value LibraryEntryPointsAnalysis

    我已经检查了相关的代码,LibraryEntryPointsAnalysis已经被实际导入但是不起作用。

    请帮我确认是否有任何操作我错过了编译源代码?

    非常感谢!

    Jiang

    +0

    错误位于'/ src/main/scala/org/opalj/evaluation/EntryPointAndCallEdgeCountAnalysis.scala'的第90行。请告诉我们该行。您很可能缺少导入声明。 – djsumdog

    +0

    相关的源代码是:'PerformanceEvaluation.time {ffccfManager.runWithRecommended(LibraryEntryPointsAnalysis)(true) } {t => opaEntryPointCalculationTime = t.toSeconds}'我也可以找到'import org.opalj.fpcf.analysis.LibraryEntryPointsAnalysis'在Line12 –

    +0

    我不确定你做了什么。你是否尝试在本地运行容器,或者是否检查了存储库中的源代码? –

    回答

    0

    它不工作的原因是OPAL框架的版本不匹配。它没有找到“LibraryEntryPointAnalysis”的原因是,它已被重命名。

    你必须选择:

    1. 使用在泊坞窗容器
      • 使用的OPAL的版本做一个检查出蛋白石从版本标记“ArtifactEvaluationFSE2016”
      • 副本蛋白石从像容器一样评估项目
    2. 将评估项目调整到新的API
      • 的LibraryEntryPointsAnalysis现在被称为EntryPointAnalysis
      • 有可能如果你想要去选择一个你要修复

    其他重大更改,你必须建立在你自己的OPAL因为eval版本未在maven上发布。

    +0

    非常感谢!为了从OPAL的最新版本中受益,我使用了您建议的第二种方法。在将'LibraryEntryPointsAnalysis'改为'EntryPointsAnalysis'后。编译成功! *顺便说一句,EntryPointAnalysis.scala中的类名实际上是EntryPointsAnalysis。 –