首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多模块项目全局版本设置

多模块项目全局版本设置
EN

Stack Overflow用户
提问于 2014-12-29 22:23:22
回答 1查看 957关注 0票数 1

我是新来的SBT,并试图建立一个多模块的项目。我遇到了一种情况,我希望有一个地方,我可以有一个地方,我可以定义版本的libs使用交叉模块。我尝试在根项目中创建一个自定义settingKey:

代码语言:javascript
复制
val akkaVersion = SettingKey[String]("Akka version used in our project")

name := "hello-app"

version in ThisBuild := "1.0.0"

organization in ThisBuild := "com.jaksky.hello"

scalaVersion := "2.10.4"

akkaVersion in ThisBuild:= "2.3.4"

// Common settings/definitions for the build

def OurProject(name: String): Project = (
  Project(name, file(name))
)

lazy val common = (
  OurProject("common")
)

lazy val be_services = (
  OurProject("be-services")
  dependsOn(common)
)

在项目be服务中,我尝试了以下几点:

代码语言:javascript
复制
libraryDependencies ++= Seq(
  "com.typesafe.akka" %% "akka-actor"   % akkaVersion.value,
  "com.typesafe.akka" %% "akka-cluster" % akkaVersion.value,
  "com.typesafe.akka" %% "akka-kernel"  % akkaVersion.value,
  "com.typesafe.akka" %% "akka-remote"  % akkaVersion.value,
  "com.typesafe.akka" %% "akka-slf4j"   % akkaVersion.value,
  "ch.qos.logback" % "logback-classic"  % "1.0.13"
)

这里的要点是akkaVersion是不可见的(找不到akkaVersion-即错误消息)。

我的遗言:

  • 设置映射是否共享交叉模块?描述的问题可能回答->否
  • 在这种情况下,最佳做法是什么?

我发现了以下可能性:

  1. Scala对象保存字符串常量。在我看来,由于项目版本是在build.sbt中指定的,所以为什么依赖库应该隐藏在项目/GlobalVersions.scala中。
  2. 对可重用的libDepenDency seq进行装箱。这限制了灵活性,我也不想总是依赖于上面提到的那些人。
  3. 自定义设置似乎有点沉重,但在我看来是一个爪子的方式,但无法使它工作。

只是为了完成这幅图--使用SBT 0.13.5

我认为这是一个非常根本的问题,我不是第一个面临这个问题的人。

谢谢你帮我

EN

回答 1

Stack Overflow用户

发布于 2015-01-02 10:15:59

.sbt文件中的定义在其他.sbt文件中不可见。为了在.sbt文件之间共享代码,在构建根目录的项目/目录中定义一个或多个Scala文件。

from documentation [http://www.scala-sbt.org/]

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27696908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档