我想将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”(以及如何动态计算此路径的部分?)
答案 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