Reputation: 4877
I have an sbt (0.13.8) project with several subprojects, most of them in pure Scala. They are cross assembly
ed and publish
ed;
crossScalaVersions := Seq("2.10.6", "2.11.8")
releaseCrossBuild := true
This works quite nicely so far.
Now I am adding a Java subproject, which depends on some of the Scala subprojects. However, I can't find a way to avoid it assembly
ing and publish
ing multiple times. While the following
crossPaths := false
has the effect that at the end I have only one jar in the java subproject, when I run
sbt +assembly
I still see it being done for all Scala versions. This I could live with, but
sbt +assembly +publish
tries to publish the same (java subproject) artifact multiple times.
Is there a way, ideally without yet another plugin, to avoid this issue?
Upvotes: 1
Views: 196
Reputation: 2824
build.sbt:
scalaVersion := "2.11.7"
crossScalaVersions := Seq("2.10.5", "2.11.7")
lazy val scalaOnly = project
.in(file("."))
.aggregate(scalaPrj)
.settings(
packagedArtifacts := Map.empty
)
lazy val scalaPrj = project
.in(file("scala-prj"))
lazy val javaPrj = project
.in(file("java-prj"))
.dependsOn(scalaPrj)
lazy val javaOnly = project
.in(file("java-dummy-aggregator"))
.aggregate(javaPrj)
.settings(
crossScalaVersions := Seq("2.11.7"),
packagedArtifacts := Map.empty
)
Switch to javaOnly before publishing:
;project javaOnly ;+publish
Upvotes: 1