Gradle:是否可以发布到Gradle自己的本地缓存?

时间:2016-02-17 15:13:25

标签: gradle

我知道我可以使用与maven结合的mavenLocal()插件来安装工件并在本地使用它。

然而,进一步研究这一点,我注意到这意味着工件已安装到Mavens的标准~/.m2,但同时Gradle自己的缓存存在于{{1}下以不同的格式。

这对我来说似乎很浪费,a)使用两个本地缓存,以及b)必须向所有项目添加~/.gradle/caches。我想知道是否有办法将工件发布到Gradle' mavenLocal()

2 个答案:

答案 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'
}