gpt4 book ai didi

scala - Play 2.0 和 SNAPSHOT 依赖项

转载 作者:行者123 更新时间:2023-12-03 22:36:06 28 4
gpt4 key购买 nike

我正在混合构建环境中设置我的第一个 play 应用程序。我的公司在所有事情上都使用 maven(到目前为止),我正试图让我的 play 应用程序与我的其余工件进行良好的交互。

有什么方法可以让 ivy/sbt/play 以与 maven 类似的方式处理快照 - 即,要么始终从远程存储库更新它们(例如,在构建 worker 上),要么使用本地 .m2 存储库,直到依赖“过期”,然后从服务器刷新它。

我已在 Build.scala 中为工件声明了 SNAPSHOT 依赖项,并且我希望我的 Play 项目可以看到此依赖项的本地更新。在 Maven 方面,我执行以下操作

mvn clean install

它(当然)构建并将我的外部工件安装到我的本地 maven 存储库(在 ~/.m2/repository)。我希望这些更改对我的 Play 项目立即可见,但我不知道如何告诉 sbt/play 不缓存快照。无论我做什么,这个依赖项都不会在游戏中刷新 - 我必须进入实际的 play ivy 缓存并手动删除依赖项以获取任何更改。理想情况下,我希望 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 缓存中。有没有我可以告诉 Ivy/sbt 不要这样做的咒语?也许 ivysettings.xml 中有什么?

最佳答案

@kheraud -> clean/reload/update -> 将不起作用
sbt 在本地缓存它,并且不会在本地 maven 中再次检查新快照

@dprat -> 我一直在网上寻找解决方案,但没有找到更多:(
我放弃了 - 只需删除 Ivy 缓存中的本地包并执行 play update你可以简化它并制作一个脚本

rm -rf ~/.ivy2/cache/your.package.foo
play update compile

关于scala - Play 2.0 和 SNAPSHOT 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11643780/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com