SBT无法解析Play源坛(播放

时间:2014-07-23 10:09:17

标签: scala playframework playframework-2.0 sbt

设置

我最近设置了一个Artifactory来保护我们的项目免受jar感染,我的Play scala项目现在遇到了一些解决依赖关系的问题。

我的~/.sbt/repositories文件:

[repositories]
  local
  artifactory-ivy: https://build-server/artifactory/repos-ivy, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]
  artifactory-ivy-sbt: https://build-server/artifactory/repos-ivy, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  artifactory-maven: https://build-server/artifactory/repo

和我的~/.sbtconfig文件:

SBT_OPTS="-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:PermSize=256M -XX:MaxPermSize=512M -Dsbt.override.build.repos=true"

使用这些设置SBT解决了大多数使用神器的依赖项,除了那些捆绑在Plays本地仓库中的东西(他们将${ivy.home}属性更改为设置为repo,它们捆绑在安装zip文件中。

问题

除非SBT现在无法解决play_2.10-test-sources.jarplay_2.10-sources.jarplay_2.10.pom,否则会显示以下错误消息:

[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::              FAILED DOWNLOADS            ::
[warn]  :: ^ see resolution messages for details  ^ ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.typesafe.play#play_2.10;2.2.0!play_2.10.jar(src)
[warn]  :: com.typesafe.play#play_2.10;2.2.0!play_2.10.jar(src)
[warn]  :: com.typesafe.play#play_2.10;2.2.0!play_2.10.pom
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::

当我看到常春藤伐木时,我发现常春藤试图寻找这些罐子的唯一地方,而pom在当地:

[warn]  [NOT FOUND  ] com.typesafe.play#play_2.10;2.2.0!play_2.10.jar(src) (0ms)
[warn] ==== local: tried
[warn]   /Users/michael/Projects/gds/ier/frontend/scripts/bin/play-2.2.0/repository/local/com.typesafe.play/play_2.10/2.2.0/srcs/play_2.10-test-sources.jar
[warn]  [NOT FOUND  ] com.typesafe.play#play_2.10;2.2.0!play_2.10.jar(src) (1ms)
[warn] ==== local: tried
[warn]   /Users/michael/Projects/gds/ier/frontend/scripts/bin/play-2.2.0/repository/local/com.typesafe.play/play_2.10/2.2.0/srcs/play_2.10-sources.jar
[warn]  [NOT FOUND  ] com.typesafe.play#play_2.10;2.2.0!play_2.10.pom (0ms)
[warn] ==== local: tried
[warn]   /Users/michael/Projects/gds/ier/frontend/scripts/bin/play-2.2.0/repository/local/com.typesafe.play/play_2.10/2.2.0/poms/play_2.10.pom

我试图用一个新项目进行复制,但我似乎无法解决同样的问题。我真的不确定为什么Play正在寻找这些文件,因为它有play_2.10.jar并且应该没有其余的工作。

1 个答案:

答案 0 :(得分:0)

首先,尝试将repositories文件放在~/.sbt/0.13目录中。从0.13开始,sbt期望在由版本命名的子目录中查找文件。

如果这不起作用,请尝试通过将repositories文件添加到SBT_OPTS来明确指定{/ 1}}文件:

-Dsbt.repository.config="~/.sbt/0.13/repositories"

我必须为我的构建设置此属性,以便在使用我们自己的repo时找到插件。由于Play是一个插件,它可能会遇到同样的问题。我的唯一区别是我没有尝试将repositories文件放在~/.sbt/0.13中。我把它放在$sbt_home/conf中并添加了上述属性。