我正在混合构建环境中设置我的第一个游戏应用程序。我的公司(到目前为止)对所有东西都使用 maven,我正试图让我的 play 应用程序与我的其他工件很好地交互。
有没有办法让 ivy/sbt/play 以类似于 maven 的方式处理 SNAPSHOT - 即,要么总是从远程存储库更新它们(例如,在构建工作者上),要么使用本地 .m2 存储库,直到依赖“过期”,然后从服务器刷新它。
我已经在我的 Build.scala 中为一个工件声明了一个 SNAPSHOT 依赖项,我希望这个依赖项的本地更新对我的 play 项目可见。在 Maven 方面,我执行以下操作
mvn clean install
它(当然)构建并将我的外部工件安装到我的本地 maven 存储库(位于 ~/.m2/repository)。我希望这些更改对我的 play 项目立即可见,但我不知道如何告诉 sbt/play 不要缓存 SNAPSHOT。不管我做什么,这个依赖永远不会在播放中刷新——我必须进入实际的播放常春藤缓存并手动删除依赖以获取任何更改。理想情况下,我希望 sbt/ivy 只解析本地 maven 存储库的路径,而不是在内部缓存它。我的 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
)
当我在游戏中运行构建时,它会正确使用此存储库,但随后会将结果缓存在常春藤缓存中。有没有我可以告诉 Ivy/sbt 不要这样做的咒语?也许在 ivysettings.xml 中有一些东西?