2016-05-12 11 views
1

私はいくつかのサブプロジェクトを持つsbt(0.13.8)プロジェクトを持っていますが、そのほとんどは純粋なScalaです。それらは十字であるassembly edおよびpublish ed;sbt:javaサブプロジェクトで複数のアセンブリ/パブリッシュのステップを避ける

crossScalaVersions := Seq("2.10.6", "2.11.8") 
releaseCrossBuild := true 

これまでのところ非常にうまくいきます。

今、私はいくつかのScalaサブプロジェクトに依存するJavaサブプロジェクトを追加しています。しかし、私はそれを避ける方法を見つけることができませんassembly ingとpublish複数回。私は

sbt +assembly 

を実行して、私はまだそれはすべてのScalaバージョンに対して行われて見たときに、次の

crossPaths := false 

ますが、最後に私はJavaのサブプロジェクトで唯一のjarファイルを持っている効果を持っています。これは私と一緒に暮らすことができるが、

sbt +assembly +publish 

同じ(javaサブプロジェクト)アーティファクトを複数回公開しようとする。

この問題を回避するには、理想的にはもう1つのプラグインがない方法はありますか?

答えて

1

build.sbt:

javaOnlyへ
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 
) 

スイッチ公開する前に:

;project javaOnly ;+publish 
関連する問題