我们在基于sbt的项目中有多个项目(如下所示),并探索如何在scala对象中从运行时获取应用程序jar名称,例如: “PROJECT1-v1.jar”。
使用'sbt assembly'为每个项目创建单独的jar
项目结构
Project1
-- main
| | |-- resources
| | |-- scala
| | |-- Test.scala
import project1._ //=> Is is possible to load from ProjectPlugin.scala?
val JarName = s"$name-$version"
Project2
.
.
project
ProjectPlugin.scala
import sbt._
import sbt._
object project1{
name := "project1",
version := "v1"
}
object project2{
name := "project2",
version := "v2"
}
.
.
build.sbt
是否可以从ProjectPlugin.scala中提取名称/版本,因为这是我们维护每个sprint更改版本的地方。我无法在jar文件中看到ProjectPlugin.scala压缩,所以有点怀疑
还是有其他更清洁的替代品来实现这一目标!
如果它帮助处于类似情况的人,我发现sbt插件sbt-buildinfo帮助我实现了这一目标。