2016-12-08 1 views
0

Je code d'accès dans Docker ($ docker pull mreif/fse2016: évaluation), le code a pu être compilé et exécuté sans erreurs dans le serveur distant. Alors que je le télécharger sur la machine locale, je souffrais des erreurs dans la compilation (en utilisant: Compile SBT):OPAL-Comment construire du code dans Docker dans une machine locale (erreur de compilation)?

  1. [error] (*: mise à jour) sbt.ResolveException: dépendance non résolue: de.opal-projet # Résumé- interprétation-framework_2.11, 0.9.0-SNAPSHOT: non

[Qu'est-ce que je l'ai fait] J'ai ajouté des lignes de suivi dans "build.sbt":

resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots" 
  1. [erreur] évaluation/src/main/scala/org/opalj/évaluation/EntryPointAndCallEdgeCountAna lysis.scala: 90: Introuvable:

[Qu'est-ce que je l'ai fait] J'ajouté des lignes de suivi dans "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

J'ai vérifié le code associé, LibraryEntryPointsAnalysis a été importé mais ne fonctionne pas.

Pourriez-vous s'il vous plaît m'aider à confirmer s'il y a des opérations que j'ai manqué pour compiler le code source?

Merci beaucoup!

Jiang

+0

L'erreur se situe à la ligne 90 de '/ src/main/scala/org/opalj/evaluation/EntryPointAndCallEdgeCountAnalysis.scala'. S'il vous plaît nous montrer cette ligne. Il vous manque probablement une déclaration d'importation. – djsumdog

+0

Le code source est liée: 'PerformanceEvaluation.time { fpcfManager.runWithRecommended (LibraryEntryPointsAnalysis) (true) {t} => opaEntryPointCalculationTime = t.toSeconds}' 'Je trouve aussi org.opalj.fpcf.analysis.LibraryEntryPointsAnalysis' à l'importation dans Line12 –

+0

Je ne suis pas sûr de ce que vous avez fait. Essayez-vous d'exécuter le conteneur localement ou avez-vous extrait le code source du référentiel? –

Répondre

0

La raison pour laquelle il ne fonctionne pas est une incompatibilité de version du cadre OPAL. La raison pour laquelle il ne trouve pas "LibraryEntryPointAnalysis" est qu'il a été renommé.

Vous avez des options:

  1. Utilisez la version de OPAL qui est utilisé dans le récipient Docker
    • faire un chèque de OPAL à partir de balise de version "ArtifactEvaluationFSE2016"
    • copie OPAL à partir du conteneur comme vous l'avez fait avec le projet d'évaluation
  2. Adapter le projet d'évaluation à la nouvelle API
    • le LibraryEntryPointsAnalysis est maintenant appelé EntryPointAnalysis
    • il y a probablement d'autres changements de rupture que vous devez fixer

Si vous voulez aller avec l'option que vous devez construire OPAL sur votre propre parce que la version eval n'est pas publiée sur maven.

+0

Merci beaucoup! Pour bénéficier de la dernière version d'OPAL, j'ai utilisé la seconde méthode que vous avez suggérée. Après avoir changé 'LibraryEntryPointsAnalysis' à' EntryPointsAnalysis'. compiler est réussi !! * Btw, le nom de classe dans 'EntryPointAnalysis.scala' est en réalité' EntryPointsAnalysis'. –