我正在尝试打包一些内部工件以供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
的文件夹。
所以我有两个问题:
publish
是不可取的。/
到.
替换字符串来指定上面我想要的模式?答案 0 :(得分:2)
找到答案,Pattern
有一个apply重载,它的第一个参数带有一个布尔参数。当true
使用使用斜杠分隔组件的Maven样式组织字符串时,false
使用常春藤样式(点)时。
这是有效的(SBT 0.3.9):
resolvers += Resolver.file("cache", file("../ivy-cache"))(Patterns(false,"[organization]/[module]/[artifact]-[revision].[ext]"))
PS:如果某人提供了更好的工作流程,我会接受这个答案......
答案 1 :(得分:1)