Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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
Java 调整SBT 0.13.5的输出目录布局_Java_Scala_Sbt - Fatal编程技术网

Java 调整SBT 0.13.5的输出目录布局

Java 调整SBT 0.13.5的输出目录布局,java,scala,sbt,Java,Scala,Sbt,我想将SBT引入到一个现有的、主要基于JAVA的项目中,该项目目前使用ant作为构建工具。 目录布局不完全符合maven风格,尤其是输出路径。 构建的JAR文件不应写入“target/”目录,而应写入名为“dist/”的目录,其中是当前使用的JAVA SDK的主要版本(即1.7用于JAVA 7,1.8用于JAVA 8等)。 这是必需的,因为一些JAVA源代码实际上是特定于主要版本的,构建的JAR文件应该反映这一点(使用JAVA 7的客户机应该从dist/1.7获取JAR,使用JAVA 8的客户机

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


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

我的提示是重新定义crossTarget

def ProjectName(名称:String,路径:String)=
项目(名称、文件(路径))。设置(
交叉目标:=文件(sourceDirectory.value.getAbsolutePath)/“dist”/scalaVersion.value)
然后:

lazy val root:=ProjectName(“根”,“根”)//其他设置
lazy val子项目:=项目名称(“子项目”、“子项目”)//其他设置

对于linux/macos,您可以创建符号链接
ln-s target dist
Hm,可以尝试它-但它必须是System.getProperty(java.vm.specification)而不是scalaVersion-后者由ukas由我们修复,但我们可能需要为不同的JVM版本生产软件。