Sto appena iniziando a provare a configurare un flusso di lavoro con scala e sbt e ho problemi con il mio repository. Sto cercando di pubblicare una semplice libreria di test, che è composta da due progetti, e la uso da un altro programma. costruireSBT non trova le istantanee in un repository Maven Artifactory
La mia biblioteca di origine contiene il seguente:
val sharedSettings = Seq(
name := "test-lib",
organization := "com.example",
version := "0.1-SNAPSHOT",
scalaVersion := "2.11.0",
publishTo := Some("Artifactory Realm" at "http://localhost:8081/artifactory/libs-snapshot-local"),
publishMavenStyle := true,
credentials += Credentials(Path.userHome/".ivy2"/".credentials")
)
lazy val root = project.in(file(".")).settings(sharedSettings: _*).aggregate(child1, child2)
lazy val sharedCode = project.settings(sharedSettings: _*)
val child1Settings = sharedSettings ++ Seq(unmanagedSourceDirectories in Compile <++= (unmanagedSourceDirectories in sharedCode) in Compile)
val child2Settings = sharedSettings ++ Seq(unmanagedSourceDirectories in Compile <++= (unmanagedSourceDirectories in sharedCode) in Compile)
lazy val child1 = project.settings(child1Settings: _*)
lazy val child2 = project.settings(child2Settings: _*)
posso correre sbt pubblicare va bene, e crea la directory com/example/test-lib/XXX
nel repository.
Nel mio programma di test, ho il seguente:
scalaVersion := "2.11.0",
resolvers += "Artifactory Realm" at "http://localhost:8081/artifactory/libs-snapshot-local",
libraryDependencies += "com.example" %% "test-lib" % "0.1-SNAPSHOT"
Quando il programma di test tenta di compilare, non è possibile risolvere com.example
, per i seguenti motivi:
[warn] ==== Artifactory Realm: tried
[warn] http://localhost:8081/artifactory/libs-snapshot-local/com/example/test-lib_2.11/0.1-SNAPSHOT/test-lib_2.11-0.1-SNAPSHOT.pom
Guardando il repository directory stessa, sto ottenendo un timestamp aggiuntivo sui miei file pom:
test-lib_2.11-0.1-20140510.183027-1.pom 10-May-2014 19:30 793 bytes
test-lib_2.11-0.1-20140510.183027-2.pom 10-May-2014 19:30 793 bytes
...
test-lib_2.11-0.1-20140510.183121-9.pom 10-May-2014 19:31 793 bytes
maven-metadata.xml nella directory fa riferimento a questi ok, sbt sta cercando direttamente un file pom senza un timestamp e non riesce a trovarlo. I file pom contengono le informazioni corrette.
Cosa sto sbagliando?
Sta cercando 'my-repo' come un repository di stile edera, ma è stato definito correttamente nel campione come un repository di stile maven. Comunque, il tuo output dice 'my-repo' e il tuo esempio dice' Realtà Artificiale ', quindi hai modificato qualcosa quando hai postato questo. Possiamo vedere l'originale in modo da sapere da dove viene chiamato 'my-repo'. – monkjack
Buona cattura! Stavo scherzando con edera e repository maven in precedenza e devo averlo copiato dalla finestra della console sbagliata ... In realtà capisco il problema di più e aggiusterò la mia domanda per riflettere questo, un momento. – mseddon
Prova ad aggiungere publishMavenStyle: = true al tuo build.sbt che potrebbe rimuovere i timestamp quando pubblichi. – monkjack