gpt4 book ai didi

scala - 使用 .ivy2 缓存的副本作为 SBT 解析器源

转载 作者:行者123 更新时间:2023-12-01 10:05:36 27 4
gpt4 key购买 nike

我正在尝试打包一些用于 SBT 的内部工件。我只会使用 libs大多数情况下是目录,但有多个项目共享相同的工件。

我一直在尝试使用 SBT 生成的目录结构作为这个小型存储库的基础。它将工件存储在 .ivy2 中像这样:

.ivy2/cache/[org-with-dots]/[module]/[artifact]-[version].[ext]

我已经把我需要的东西复制到了 cache 下到它自己的文件夹,然后在 SBT 中尝试以下模式无济于事:
resolvers += "cache" at "file:/../ivy-cache"
resolvers += Resolver.file("cache", file("../ivy-cache"))
resolvers += Resolver.file("cache", file("../ivy-cache"))(Resolver.ivyStylePatterns)
resolvers += Resolver.file("cache", file("../ivy-cache"))(Patterns("[organization]/[module]/[artifact]-[revision].[ext]"))

这些都不起作用。最接近的是最后一个,但是组织以斜线而不是点出现。 Resolver.ivyStylePatterns在组织中使用了点,但需要一个名为 ivys 的文件夹要使用的。

所以我有一个两部分的问题:
  • 我应该做其他事情来捕获这些本地托管的工件吗?我不 build 它们,所以 publish是不可取的。
  • 有没有办法在不从 / 进行字符串替换的情况下指定我想要的模式至 .在组织组件中?
  • 最佳答案

    找到答案了,Pattern有一个应用重载,它的第一个参数接受一个 bool 参数。当truefalse 时,它使用 Maven 风格的组织字符串,它使用斜杠分隔组件。它使用 Ivy 风格(点)。

    这是有效的(使用 SBT 0.3.9):

    resolvers += Resolver.file("cache", file("../ivy-cache"))(Patterns(false,"[organization]/[module]/[artifact]-[revision].[ext]"))

    PS:如果有人提供更好的工作流程,我会接受这个答案......

    关于scala - 使用 .ivy2 缓存的副本作为 SBT 解析器源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34619873/

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