![](/img/trans.png)
[英]SBT: How to include sbt files in upper directory to my build.sbt?
[英]How can I get the path to the current target directory in my build.sbt
在我的build.sbt
我想知道当前的目标文件。 像这样的东西:
val targetFile = ??? // /home/fbaierl/Repos/kcc/scala/com.github.fbaierl/target/scala-2.12/myapplication_2.12-1.2.3-SNAPSHOT.jar
使用target.value
我只获取目录直到/ target。 有没有办法获得生成的jar的完整路径?
你需要的是compile:package
的返回值。
运行sbt "show compile:package"
以查看它是否打印了您正在构建的工件的完整路径。
如果您只需要路径而不构建工件,请sbt "show Compile / packageBin / artifactPath"
要在build.sbt
使用此值,您必须定义这样的task
或setting
val targetFile = taskKey[File]("shows target file")
targetFile := {
val path = artifactPath.in(packageBin).in(Compile).value
//same as val path = (Compile / packageBin / artifactPath).value
streams.value.log.info(path.toPath.toString)
path
}
sbt中任何任务的值都不能直接分配给val,例如val someFile: File
。 您必须根据设置和任务编写自定义逻辑。
在最近的1.x风格中,它应该是类似的
val targetFile: File = (Compile / packageBin / artifactPath).value
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.