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

91 views Asked by At

I access code in Docker($docker pull mreif/fse2016:evaluation), the code could be compiled and run without errors in remote server. While i download it to local machine, i suffered some errors in compiling(using: sbt compile):

  1. [error] (*:update) sbt.ResolveException: unresolved dependency: de.opal-project#abstract-interpretation-framework_2.11;0.9.0-SNAPSHOT: not

[What i have done] I added follow lines into "build.sbt":

resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
  1. [error] evaluation/src/main/scala/org/opalj/evaluation/EntryPointAndCallEdgeCountAnalysis.scala:90: not found:

[What i have done] I added follow lines into "build.sbt":

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

3.[error] /src/main/scala/org/opalj/evaluation/EntryPointAndCallEdgeCountAnalysis.scala:130: not found: value LibraryEntryPointsAnalysis

I have checked the related code, LibraryEntryPointsAnalysis has been actually imported but doesn't work.

Could you please help me to confirm is there any operations i missed for compile the source code?

Thank you very much!

Jiang

1

There are 1 answers

1
M. Reif On BEST ANSWER

The reason why it is not working is a version mismatch of the OPAL framework. The reason why it doesn't find the "LibraryEntryPointAnalysis" is, that it has been renamed.

You have to options:

  1. Use the version of OPAL that is used in the Docker container
    • make a check out of OPAL at from version tag "ArtifactEvaluationFSE2016"
    • copy OPAl from the container like you did with the evaluation project
  2. Adapt the Evaluation Project to the new API
    • the LibraryEntryPointsAnalysis is now called EntryPointAnalysis
    • there are probably other breaking changes that you have to fix

If you want to go with option one you have to build OPAL on your own because the eval version is not published on maven.