6

(在 Activator 文档中找不到)
似乎可以通过在 build.sbt 文件中添加以下条目(粗体)让 Activator 也使用现有的本地 Maven 存储库:

解析器 += Seq( “文件://q:/repositories/maven”中的“本地 Maven 存储库”, “ https://oss.sonatype.org/content/repositories/snapshots
” 中的“Sonatype OSS 快照” )

我不确定它是否有效,但无论如何,这种方法的问题是必须已经创建了项目结构(因此创建了一个本地存储库并通过下载自动填充),因此我的问题是:是否可以在它之前告诉 Activator创建应该使用一些本地 Maven 存储库的项目结构?

提前感谢您的任何提示。

4

1 回答 1

10

Activator 使用 sbt-launcher。您可以使用 sbt-launcher 来控制 sbt默认为每个项目启动器本身使用哪些存储库。

如果您想修改激活器启动器本身,请解压缩 jar 文件并查看sbt/boot.properties包含的文件。您可以使用sbt 的启动器文档中概述的格式将您的本地 maven 存储库添加到列表中。

未来的一个更简单的选项(但在我们当前的属性文件中未启用)是启动器拥有覆盖存储库配置文件的能力。请参阅:Sbt 的代理配置文档。该文件将允许您指定您希望激活器默认使用的存储库。我们禁用此功能以确保默认添加激活器使用的离线存储库。但是,我将打开一张票以重新启用此功能。这样,您应该能够创建一个~/.sbt/repositories包含以下内容的文件:

[repositories]
  activator-local: file://${activator.local.repository-${activator.home-${user.home}/.activator}/repository}, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  local
  maven-local
  maven-central
  typesafe-releases: http://typesafe.artifactoryonline.com/typesafe/releases
  typesafe-ivy-releases: http://typesafe.artifactoryonline.com/typesafe/ivy-releases, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]

注意:该~/.sbt/boot目录将始终存在。这是为了确保没有其他进程删除我们在运行时使用的 jar 文件,因此我们将这些文件从本地缓存中复制出来。如果我们不这样做,您会看到一些非常有趣的错误消息。

于 2013-10-21T12:29:34.563 回答