2016-06-15 12 views
0

Ich bin frustriert zu versuchen, ein SSH Ivy-Repository zu den Resolvern hinzuzufügen.Wie fügt man SBT-Resolvern ein Ivy-SSH-Repository hinzu?

Was ich habe versucht, basierend auf verschiedenen Threads auf Stackoverflow:

Relevant part of buid.sbt

val intResolver = Seq[Resolver](
     { 
     import java.io.File 
     val privateKeyFile: File = new File(sys.env("HOME") + "/.ssh/id_rsa") 
     val userName = sys.env("SCN_USER_NAME") 
     Resolver.ssh("int-scn-snapshot-repository", "scn.int.com")(Patterns(
      "/export/repository/maven2/snapshot/[organisation]/[module]/[revision]/[artifact].[ext]", 
      "/export/repository/maven2/snapshot/[organisation]/[module]/[revision]/[artifact]-[type].[ext]" 
     ) 
     ) as(userName, privateKeyFile) withPermissions("0644") 
     } 
    ) 

    resolvers ++= intResolver 

    val exportFullResolvers = taskKey[Unit]("debug resolvers") 

    exportFullResolvers := { 
     for { 
     (resolver,idx) <- fullResolvers.value.zipWithIndex 
     } println(s"${idx}. ${resolver.name}") 
    } 

    fullResolvers := { 
     val previous = fullResolvers.value 
     previous.sortWith { (lhs, rhs) => if (lhs.name.contains("int-scn")) true else false } 
    } 

Die Ausgabe von exportFullResolvers:

> exportFullResolvers 
    0. int-scn-snapshot-repository 
    1. inter-project 
    2. local 
    3. public 
    [success] Total time: 0 s, completed Jun 15, 2016 8:57:42 AM 

Die Ausgabe von update:

[info] Updating {file:/home/mozart/eng/IVAAPBackendRD/}root... 
    [info] Resolving org.scala-lang#scala-compiler;2.10.6 ... 
    [info] Updating {file:/home/mozart/eng/IVAAPBackendRD/}common... 
    [info] Resolving org.fusesource.jansi#jansi;1.4 ... 
    [info] Done updating. 
    [info] Resolving com.interactive.ivaap#IVAAPWitsmlDataSource;SNAPSHOT ... 
    [warn] module not found: com.interactive.ivaap#IVAAPWitsmlDataSource;SNAPSHOT 
    [warn] ==== local: tried 
    [warn] /home/mozart/.ivy2/local/com.interactive.ivaap/IVAAPWitsmlDataSource/SNAPSHOT/ivys/ivy.xml 
    [warn] ==== public: tried 
    [warn] https://repo1.maven.org/maven2/com/interactive/ivaap/IVAAPWitsmlDataSource/SNAPSHOT/IVAAPWitsmlDataSource-SNAPSHOT.pom 
    [info] Resolving com.interactive.ivaap#IVAAPCommonObjects;1 ... 
    [warn] module not found: com.interactive.ivaap#IVAAPCommonObjects;1 
    [warn] ==== local: tried 
    [warn] /home/mozart/.ivy2/local/com.interactive.ivaap/IVAAPCommonObjects/1/ivys/ivy.xml 
    [warn] ==== public: tried 
    [warn] https://repo1.maven.org/maven2/com/interactive/ivaap/IVAAPCommonObjects/1/IVAAPCommonObjects-1.pom 
    [info] Resolving jline#jline;2.12.1 ... 
    [warn] :::::::::::::::::::::::::::::::::::::::::::::: 
    [warn] ::   UNRESOLVED DEPENDENCIES   :: 
    [warn] :::::::::::::::::::::::::::::::::::::::::::::: 
    [warn] :: com.interactive.ivaap#IVAAPWitsmlDataSource;SNAPSHOT: not found 
    [warn] :: com.interactive.ivaap#IVAAPCommonObjects;1: not found 
    [warn] :::::::::::::::::::::::::::::::::::::::::::::: 
    [warn] 
    [warn] Note: Unresolved dependencies path: 
    [warn]   com.interactive.ivaap:IVAAPWitsmlDataSource:SNAPSHOT (/home/mozart/eng/IVAAPBackendRD/build.sbt#L68) 
    [warn]   +- com.acme:ivaap-common_2.11:0.11 
    [warn]   com.interactive.ivaap:IVAAPCommonObjects:1 (/home/mozart/eng/IVAAPBackendRD/build.sbt#L68) 
    [warn]   +- com.acme:ivaap-common_2.11:0.11 
    [trace] Stack trace suppressed: run last common/*:update for the full output. 
    [error] (common/*:update) sbt.ResolveException: unresolved dependency: com.interactive.ivaap#IVAAPWitsmlDataSource;SNAPSHOT: not found 

Ausgabe inspizieren: Resolvern:

> inspect compile:resolvers 
    [info] Setting: scala.collection.Seq[sbt.Resolver] = List(SshRepository(int-scn-snapshot-repository,SshConnection(Some(KeyFileAuthentication(mozart.brocchini,/home/mozart/.ssh/id_rsa,None)),Some(scn.int.com),None),Patterns(ivyPatterns=WrappedArray(/export/repository/maven2/snapshot/[organisation]/[module]/[revision]/[artifact].[ext], /export/repository/maven2/snapshot/[organisation]/[module]/[revision]/[artifact]-[type].[ext]), artifactPatterns=WrappedArray(/export/repository/maven2/snapshot/[organisation]/[module]/[revision]/[artifact].[ext], /export/repository/maven2/snapshot/[organisation]/[module]/[revision]/[artifact]-[type].[ext]), isMavenCompatible=true, descriptorOptional=false, skipConsistencyCheck=false),Some(0644))) 
    [info] Description: 
    [info] The user-defined additional resolvers for automatically managed dependencies. 
    [info] Provided by: 
    [info] {file:/home/mozart/eng/IVAAPBackendRD/}root/*:resolvers 
    [info] Defined at: 
    [info] /home/mozart/eng/IVAAPBackendRD/build.sbt:17 
    [info] Delegates: 
    [info] root/compile:resolvers 
    [info] root/*:resolvers 
    [info] {.}/compile:resolvers 
    [info] {.}/*:resolvers 
    [info] */compile:resolvers 
    [info] */*:resolvers 
    [info] Related: 
    [info] root/*:resolvers 
    [info] */*:resolvers 

Bitte beachten Sie, dass dies ein Multi-Projekt Build ist und die Abhängigkeit in Frage nur von einem der Teilprojekte verwendet wird, . Bedeutet das, dass ich den Resolver bewegen muss und irgendwie mit diesem Teilprojekt assoziieren muss?

> inspect common/update:resolvers 
    [info] Setting: scala.collection.Seq[sbt.Resolver] = List() 
    [info] Description: 
    [info] The user-defined additional resolvers for automatically managed dependencies. 
    [info] Provided by: 
    [info] */*:resolvers 
    [info] Defined at: 
    [info] (sbt.Classpaths) Defaults.scala:1122 
    [info] Delegates: 
    [info] common/update:resolvers 
    [info] common/*:resolvers 
    [info] {.}/update:resolvers 
    [info] {.}/*:resolvers 
    [info] */update:resolvers 
    [info] */*:resolvers 
    [info] Related: 
    [info] root/*:resolvers 
    [info] */*:resolvers 
    > 

Warum wird nicht mein SSH Ivy-Repository nach Abhängigkeitsauflösung gesucht?

Antwort

1

Es ist schwierig, genau aus Ihrer Frage zu sagen, aber es sieht so aus, als ob Sie Resolver Resolver in anderen Bereichen als Kompilieren hinzugefügt. Es gibt mehrere Bereiche zu prüfen:

  1. Sie Resolver Resolver in Projekt/plugins.sbt Zugabe sind?
  2. Überprüfen Sie in der sbt-Konsole die Details der Resolver im Projekt, das Sie zu kompilieren versuchen. Verwenden Sie inspect resolvers Befehl
  3. Lesen Sie mehr über Scopes und verstehen Sie, welchen Umfang Sie Resolver hinzufügen und welchen Bereich Sie ausführen Update.
  4. Versuchen resolvers in ThisBuild statt resolvers
  5. verwenden Wenn Sie nur gemeinsam Modul von Multiprojekten Resolver benötigen. Sie können so etwas wie folgt verwenden:

    Project(id = "common", base = ...) 
        .settings(
        resolvers ++= intResolver 
    ) 
    
+0

was 'inspect common/Update: resolvers'? –

+0

Ich habe die Frage hinzugefügt. –

+1

Und hier ist die Antwort - für gängige Modul Resolver ist leere Liste. Versuchen Sie, 'Resolver in ThisBuild' statt' Resolver' zu verwenden –

Verwandte Themen