我知道我可以使用与maven
结合的mavenLocal()
插件来安装工件并在本地使用它。
然而,进一步研究这一点,我注意到这意味着工件已安装到Mavens的标准~/.m2
,但同时Gradle自己的缓存存在于{{1}下以不同的格式。
这对我来说似乎很浪费,a)使用两个本地缓存,以及b)必须向所有项目添加~/.gradle/caches
。我想知道是否有办法将工件发布到Gradle' mavenLocal()
?
答案 0 :(得分:13)
请注意,本地Maven目录不是缓存,Gradle缓存不是存储库。 Gradle仅使用其缓存来缓存远程工件,它不应复制从本地Maven存储库中检索到的工件。反过来,you cannot publish artifacts to the Gradle cache。
因此,发布和使用mavenLocal()
的方法不应该像您想象的那样浪费。此外,您不必单独将mavenLocal()
添加到多项目的所有项目中。您可以在根项目中使用allprojects { repositories { mavenLocal() } }
之类的内容。或者,如果您想要所有中的mavenLocal()
个独立的Gradle项目,您甚至可以尝试将其添加到~/.gradle/init.gradle
。
答案 1 :(得分:0)
这是一个带有代码的示例。 由于无法发布到Gradle中。解决方法是将其发布到Maven中并在Gradle中使用。
第1步将代码发布到本地Maven存储库/users/jay/.m2/repository /
Step2-在另一个项目中使用本地Maven回购代码。
第1步(发布到本地Maven存储库)
apply plugin: 'maven-publish'
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
第2步(在gradle项目中使用本地Maven存储库)
repositories {
// ..... Other repositories
mavenLocal()
}
dependencies {
compile 'com.jai:myapp:1.0.0'
}