ich eine separate Settings.scala
Datei in meinem großen SBT-Projekt haben die folgende hat:„Repository für die Veröffentlichung nicht angegeben“ trotz der Veröffentlichung nachfolgenden
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
)
Nun folgt definiert werden alle meine Projekte in build.sbt
:
lazy val aProject =
project.in(file("somewhere/aProject")).
settings(commonSettings).
settings(
// project specific settings
)
Wenn ich jetzt
sbt "+ publish"
I se e, die alle meine Artefakte publiziert werden, und als ich sie dort zu suchen in mein Nexus, und ich kann sie auch als Abhängigkeiten usw. verwenden, so Werke zu veröffentlichen, aber trotzdem erhalte ich die folgende am Ende:
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)
Was vermisse ich/mache ich falsch in meiner sbt-Datei?
OK, also muss ich ein Root-Projekt definieren. Jetzt hat mein Projekt ein großes, großes Bündel von Teilprojekten. Wie kann ich vermeiden, '' lazy val root = project.in (Datei (".")) Zu schreiben. Aggregate (project1, project2, project3, ..., project739672) '? Gibt es eine "aggregierte all" -Methode? – rabejens
Ich habe jetzt ein Root-Projekt hinzugefügt und das große Aggregat mit einem Shell-Skript erstellt. – rabejens
Sorry, ich weiß es nicht. Sie sollten es als separate Frage stellen. Ich habe eine Alternative hinzugefügt, bei der das Root-Projekt nicht explizit definiert werden muss, sofern Sie dort Standardeinstellungen anwenden möchten. –