我在混合构建环境中设置了我的第一个播放应用程序。我的公司对所有东西都使用maven(到目前为止),我试图让我的游戏应用与我的其他工件很好地交互。播放2.0和SNAPSHOT依赖关系
是否有任何方式让ivy/sbt/play以类似于maven的方式处理SNAPSHOT - 即,或者从远程存储库始终更新它们(例如,在构建工作者上)或使用本地。 m2存储库,直到依赖项'过期',然后从服务器刷新它。
我已经在我的Build.scala中为一个工件声明了一个SNAPSHOT依赖项,并且我希望对此依赖项的本地更新对我的播放项目可见。在Maven的一面,我做了以下
mvn clean install
(当然),其制造和安装我的外部神器我的本地仓库(在〜/ .m2目录/库)。我希望这些更改能够立即在我的播放项目中可见,但我无法弄清楚如何告诉sbt/play不缓存SNAPSHOT。无论我做什么,这种依赖都不会在游戏中刷新 - 我必须进入实际的常春藤缓存并手动删除依赖关系,以便进行任何更改。理想情况下,我希望sbt/ivy只解析我的本地maven repo的路径,而不是在内部缓存它。我有以下我Build.scala
val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
resolvers += "Local Maven Repository" at "file://" + Path.userHome.absolutePath + "/.m2/repository",
testOptions in Test := Nil
)
当我在游戏运行构建,它正确地使用此回购,但随后缓存在常春藤缓存的结果。有没有咒语我可以告诉艾维/ sbt不要这样做?也许在ivysettings.xml中有什么?
你尝试玩玩干净吗? – 2012-07-25 15:18:10
是否http://stackoverflow.com/questions/8224907/re-download-a-snapshot-version-of-a-dependency-using-sbt有帮助? – 2012-07-27 05:50:01
是的 - 我尝试了所有我能想到的组合。香草播放2.0安装缓存SNAPSHOTS,你必须手动删除它们。使用sbt 0.11(没有安装play)也一样。此外,使用sbt 0.12和最新的Play 2.1 SNAPSHOT也展现了这一点。无论我做什么,SNAPSHOT都缓存在〜/ .ivy2/cache中,任何sbt/play咒语都不会导致sbt/play在常春藤缓存中更新此SNAPSHOT。 – dpratt 2012-09-04 16:28:59