调整SBT 0.13.5的输出目录布局

时间:2014-08-12 11:50:58

标签: java scala sbt

我想将SBT引入现有的,主要是基于JAVA的项目,该项目到目前为止使用ant作为构建工具。 目录布局不完全符合maven样式,特别是对于输出路径。 构建的JAR文件不应写入“target /”目录,而应写入名为“dist /”的目录,其中是当前使用的JAVA SDK的主要版本(即JAVA 7为1.7,JAVA 8为1.8等)。 )。 这是必需的,因为一些JAVA源实际上是特定于主要版本的,并且构建的JAR文件应该反映出来(使用JAVA 7的客户端应该从dist / 1.7获取JAR,使用JAVA 8从dist / 1.8获取JAR ...等等)。 )。 另一方面,scala版本与此项目(一个应用程序,主要是java)无关,因为我们控制这里使用的scala版本。

如何做到这一点?我发现还没有办法将构建的jar文件的路径从“target /”切换到至少“dist”(以及如何动态计算此路径的部分?)

1 个答案:

答案 0 :(得分:0)

我的提示是重新定义crossTarget

def ProjectName(name: String, path: String) = 
     Project(name, file(path)).settings(
           crossTarget := file(sourceDirectory.value.getAbsolutePath) / "dist" / scalaVersion.value)

然后:

lazy val root := ProjectName("root",".")//other settings

lazy val subProject := ProjectName("subProject","subProject")//other settings