如何从scala对象中的sbt ProjectPlugin.scala加载对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从scala对象中的sbt ProjectPlugin.scala加载对象相关的知识,希望对你有一定的参考价值。
我们在基于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帮助我实现了这一目标。
以上是关于如何从scala对象中的sbt ProjectPlugin.scala加载对象的主要内容,如果未能解决你的问题,请参考以下文章
Play 2.0 / SBT:从 Build.scala 中的某些/所有模块中排除某些传递依赖项
为什么sbt build失败并出现“MissingRequirementError:找不到编译器镜像中的对象scala.runtime。”?