在sbt中,如果我们执行package
,将生成一个jar文件target/scala-2.12/XXX.jar
.但我想把jar文件放在myDirectory/XXX.jar
.我该怎么做?
target/
默认路径的一部分由target
设置键scala-2.12/
定义,部分由crossTarget
设置定义(因为您可以针对不同版本的Scala进行交叉编译).所以一个简单的解决方案是将此添加到您的build.sbt
:
crossTarget := baseDirectory.value / "myDirectory"
Run Code Online (Sandbox Code Playgroud)
现在,如果你package
从sbt 调用任务,你将获得myDirectory/
目录的所有文件,包括jar,类和其他通常会发生的东西target/scala-2.12/
.
如果只想更改jar的位置,可以更改artifactPath
设置.但是你应该在正确的范围内设置它并使用jar文件名:
artifactPath in packageBin in Compile := baseDirectory.value / "myDirectory" / "XXX.jar"
// if you're using sbt 1.1+, you can also write like this:
Compile/packageBin/artifactPath := ...
Run Code Online (Sandbox Code Playgroud)
如果你有一个非平凡的设置,这很容易变得更加复杂和混乱.因此,请检查sbt源以了解如何artifactPath
实际定义设置并阅读sbt文档中的工件.
归档时间: |
|
查看次数: |
1040 次 |
最近记录: |