Android与Maven内部存储库

时间:2014-12-14 23:31:08

标签: android maven gradle android-gradle

说我需要在我的android库中使用一些专有的jar。我希望我的图书馆可以从Maven Central方便地获得,但由于法律问题,我不能把依赖项放在那里。

我认为可以使用Internal Repository来托管依赖项,以便自动解决它们。

我使用了Github repo,就像this one一样,并在库pom.xml

中声明了它

然而,Gradle似乎没有解决这种依赖关系。如果我在main build.gradle中手动声明我的存储库,一切正常。我在这里做错了什么,或者android gradle plugind只是不支持内部存储库?

1 个答案:

答案 0 :(得分:2)

Maven社区不鼓励在已发布的POM中拥有存储库声明,而Gradle不会尊重它们。相反,下游构建必须以某种方式声明内部存储库(这不应该是一个大问题。)

如果您(仅)向Maven Central发布专有依赖关系的POM(至少如果您拥有依赖关系,这是此问题的常见解决方案),下游版本将需要按如下方式声明内部存储库:

repositories {
    maven {
        url "https://repo1.maven.org/maven2"
        artifactUrls "https://some.internal.repo"
    }
}

如果您根本不向Maven Central发布专有依赖项(甚至不是POM),则下游版本必须将内部存储库声明为另一个常规Maven存储库:

repositories {
    mavenCentral()
    maven {
        url "https://some.internal.repo"
    }
}

但是请注意,上次我检查时,向Maven Central发布的规则之一就是需要从Maven Central获得依赖关系。

PS:无论您是发布Java还是Android库都不重要。