Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sbt:避免java子项目中的多个组装/发布步骤_Java_Scala_Sbt_Cross Compiling_Sbt Assembly - Fatal编程技术网

sbt:避免java子项目中的多个组装/发布步骤

sbt:避免java子项目中的多个组装/发布步骤,java,scala,sbt,cross-compiling,sbt-assembly,Java,Scala,Sbt,Cross Compiling,Sbt Assembly,我有一个sbt(0.13.8)项目,其中有几个子项目,其中大多数是纯Scala的。它们是交叉assemblyed和published crossScalaVersions := Seq("2.10.6", "2.11.8") releaseCrossBuild := true 到目前为止,这种方法非常有效 现在我添加了一个Java子项目,它依赖于一些Scala子项目。然而,我找不到一种方法来避免它多次assemblying和publishing。而以下 crossPaths := false

我有一个sbt(0.13.8)项目,其中有几个子项目,其中大多数是纯Scala的。它们是交叉
assembly
ed和
publish
ed

crossScalaVersions := Seq("2.10.6", "2.11.8")
releaseCrossBuild := true
到目前为止,这种方法非常有效

现在我添加了一个Java子项目,它依赖于一些Scala子项目。然而,我找不到一种方法来避免它多次
assembly
ing和
publish
ing。而以下

crossPaths := false
结果是,当我运行java子项目时,我在java子项目中只有一个jar

sbt +assembly
我仍然看到所有Scala版本都在使用它。这个我可以接受,但是

sbt +assembly +publish
尝试多次发布同一(java子项目)工件

有没有一种方法可以避免这个问题,最好不要使用其他插件?

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
  )
仅在发布前切换到Java:

;project javaOnly ;+publish