Play Framework存储库在哪里?

时间:2014-08-02 09:33:35

标签: maven playframework sbt ivy typesafe-activator

我正在使用Mac OS X 10.9.4上的Play Framework 1.2.3离线安装尝试Typesafe Activator 2.3.2。

在我解压缩的activator-1.2.3文件夹中,有一个repository文件夹看起来类似于我的~/.ivy2/cache文件夹,因为它包含...库的文件夹?捆绑?我不懂术语。

现在,就我的理解而言,Activator使用SBT和SBT使用Ivy进行依赖关系管理。 Ivy是类似 Maven,它甚至使用它的存储库。

我的问题是这些:

  • 如果我打开Play Framework项目并且Activator会下载所有依赖项,那么究竟发生了什么?
  • 开始构建项目时是否有不同的流程?
  • 库(捆绑?)下载到哪里?
  • activator-1.2.3/repository文件夹是否类似于引导程序,所有其他依赖项都转到~/.ivy2
  • 如果我安装了Maven并且有一个~/.m2文件夹怎么办?

所以你看到我完全迷失了。任何见解都非常受欢迎。

1 个答案:

答案 0 :(得分:7)

由于2.3.x Play is distributed as an Activator distribution that contains all Play’s dependencies遵循sbt的规则,即本地构建的依赖项/库转到~/.ivy2/local,而下载的依赖项/库的缓存在~/.ivy2/cache下。

稍后在What’s new in Play 2.3文档中:

  

默认常春藤缓存和本地存储库

     

现在播放使用默认常春藤   缓存和存储库,位于用户主目录的.ivy2文件夹中。

     

这意味着Play现在可以更好地与其他sbt版本集成,而不是   要求工件多次缓存,并允许   共享本地出版的文物。

当您update(以及compilerun)Play 2.3.x项目时,依赖关系会转到~/.ivy2/cache

activator-1.2.3/repository下的内容显示为本地Ivy2存储库,以加快解决从联机存储库下载的依赖关系。

~/.m2下的依赖关系必须按照Library dependenciesResolvers中sbt官方文档中的说明明确添加。

您可能会发现fullResolvers任务对了解可用的解析器/存储库很有用。

[jacoco4sbt-play] $ help fullResolvers
Combines the project resolver, default resolvers, and user-defined resolvers.
[jacoco4sbt-play] $ show fullResolvers
[info] ArrayBuffer(Raw(ProjectResolver(inter-project, mapped: )), FileRepository(local,FileConfiguration(true,None),Patterns(ivyPatterns=List(${ivy.home}/local/[organisation]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]), artifactPatterns=List(${ivy.home}/local/[organisation]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]), isMavenCompatible=false, descriptorOptional=false, skipConsistencyCheck=false)), public: http://repo1.maven.org/maven2/, Typesafe Releases Repository: http://repo.typesafe.com/typesafe/releases/)
[success] Total time: 0 s, completed Sep 23, 2014 11:02:19 PM