sbt 1.1.5版本中如何访问并打印assemblyJarName变量的值?
在sbt 1.1.5中打印assemblyJarName的值
嘿,这个问题我熟!你遇到的报错是因为sbt 1.x版本里,assembly插件的配置项已经被放到任务作用域里了,直接写assemblyJarName已经找不到正确的设置啦,sbt提示的assemblyPackageDependency / assemblyJarName是另一个打包任务(专门打依赖包的)的配置,而你要的应该是主打包任务assembly对应的配置。
下面给你两种可行的方法:
方法一:直接在sbt控制台打印(最快最方便)
打开sbt控制台后,直接输入这行命令就能看到结果:
show assembly / assemblyJarName
如果想直接用println输出,也可以在控制台里执行:
println((assembly / assemblyJarName).value)
方法二:在build.sbt里定义任务打印
如果想把打印逻辑写到build.sbt文件里,可以添加一个自定义任务:
// 定义一个任务键,用来标识打印jar名称的任务 lazy val printAssemblyJarName = taskKey[Unit]("Prints the name of the assembly jar") // 实现这个任务的逻辑 printAssemblyJarName := { // 正确引用assembly任务作用域下的assemblyJarName配置 val jarName = (assembly / assemblyJarName).value println(s"Assembly Jar Name: $jarName") }
保存文件后,在sbt控制台执行printAssemblyJarName命令,就能看到打印的结果了。
另外要注意,确保你已经在project/plugins.sbt里添加了和sbt 1.1.5兼容的assembly插件版本(推荐0.14.10):
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10")
内容的提问来源于stack exchange,提问作者AI Joes
相关产品推荐
相关产品推荐

