如何从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加载对象的主要内容,如果未能解决你的问题,请参考以下文章

如何从特定项目的交叉构建的sbt多项目中删除scala版本

Play 2.0 / SBT:从 Build.scala 中的某些/所有模块中排除某些传递依赖项

为什么sbt build失败并出现“MissingRequirementError:找不到编译器镜像中的对象scala.runtime。”?

Scala/SBT:“对象不是包的成员”,但对象在外部库中

为啥 sbt 为 import scala.swing 给出“对象 swing 不是包 scala 的成员”?

如何使用 scala sbt 构建多个 jar 文件