Ho un file separato Settings.scala
nel mio grande progetto SBT che ha la seguente:"Repository per la pubblicazione non è specificato", nonostante la pubblicazione di successo
lazy val commonSettings = Seq(
// ... lots of settings
publishTo :=
Some("Sonatype Nexus Repository Manager" at
"http://my.company.nexus/content/repositories/releases/"),
credentials += Credentials(Path.userHome/".ivy2"/".credentials"),
publishMavenStyle := true,
crossScalaVersions := Seq("2.10.6"),
// ... lots of other settings
)
Ora tutti i miei progetti in build.sbt
sono definiti i seguenti:
lazy val aProject =
project.in(file("somewhere/aProject")).
settings(commonSettings).
settings(
// project specific settings
)
Quando io ora faccio
sbt "+ publish"
I se e che tutti i miei manufatti vengono pubblicati, e quando guardo nel mio Nexus sono lì, e posso anche usarli come dipendenze, ecc, quindi la pubblicazione di opere, ma comunque ottengo il seguente alla fine:
java.lang.RuntimeException: Repository for publishing is not specified.
at scala.sys.package$.error(package.scala:27)
at sbt.Classpaths$$anonfun$getPublishTo$1.apply(Defaults.scala:1470)
at sbt.Classpaths$$anonfun$getPublishTo$1.apply(Defaults.scala:1470)
at scala.Option.getOrElse(Option.scala:120)
at sbt.Classpaths$.getPublishTo(Defaults.scala:1470)
at sbt.Classpaths$$anonfun$59.apply(Defaults.scala:1150)
at sbt.Classpaths$$anonfun$59.apply(Defaults.scala:1150)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:235)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Cosa mi sfugge/faccio male nel mio file sbt?
OK, quindi devo definire un progetto root. Ora il mio progetto ha un grosso gruppo di sottoprogetti. Come posso evitare di scrivere 'lazy val root = project.in (file (". ")). Aggregate (project1, project2, project3, ..., project739672)'? Esiste un metodo "aggregate all"? – rabejens
Ora ho aggiunto un progetto root e ho costruito il grande 'aggregato' usando uno script di shell. – rabejens
Scusa, non lo so. Dovresti chiederlo come una domanda separata. Ho aggiunto un'alternativa che non richiede la definizione esplicita del progetto di root, a condizione che si desideri applicare le impostazioni predefinite lì. –