我发布了一个带有sbt的jar。 jar是在一个基于build.sbt配置的合理路径的本地文件中生成的,如下所示:
name := "Utilities One"
organization := "com.cosi"
scalaVersion := 2.11.6"
version := "0.2"
这会在:/home/bill/.ivy2/local/com.cosi/utilities-one_2.11/0.2/jars/utilities-one_2.11.jar
我的build.gradle指向常春藤仓库,并按如下方式命名依赖项:
dependencies {
compile 'com.cosi:utilities-one_2.11:0.2@jar'
}
这会导致gradle进程在路径/home/bill/.ivy2/local/com.cosi/utilities-one_2.11/0.2/utilities-one_2.11-0.2.jar
我通过手动创建符号链接来解决路径构造中的不兼容问题,并且项目成功构建(适用于Android)。
但我想通过调整build.sbt或gradle.sbt或两者来消除对符号链接的需要。是否可能,最佳做法是什么?
答案 0 :(得分:2)
您可以改为使用sbt publishM2
并将mavenLocal()
添加到gradle存储库:
repositories {
mavenLocal()
}
publishM2
使用Maven存储库布局并发布到~/.m2/repository
使用的同一目录mavenLocal()
。
答案 1 :(得分:0)
嗯,更简单的解决方案令人尴尬地显而易见,但仍然不满意:
compile files('/home/bill/.ivy2/local/com.cosi/utilities-one_2.11/0.2/jars/utilities-one_2.11.jar')
也就是说,只需将Gradle引用类型更改为file而不是ivy,因为它是本地文件。也许sbt和gradle和常春藤不是为了一起玩。