android gradle:maven远程存储库传递依赖

时间:2018-03-16 06:30:50

标签: android maven gradle

我在尝试创建自己的android库时遇到了问题。 该库具有位于远程maven存储库build.gradle:

中的依赖项
repositories {
    jcenter()
    maven {
        name "Some maven remote dependency"
        url "https://remote.maven.url/"
    }
}

compile 'remote.groudid:remote.artifactid:remote.version'

我使用maven-publish插件将我的库发布到本地maven存储库:

apply plugin: 'maven-publish'

publishing {
    publications {
        library(MavenPublication) {
            setGroupId(groupId)
            setArtifactId(artifactId)
            setVersion(version)
            artifact(bundleRelease)

            pom.withXml {
                def dependenciesNode = asNode().appendNode('dependencies')
                configurations.compile.allDependencies.each {
                    if (it.group != null && (it.name != null || "unspecified".equals(it.name)) && it.version != null) {
                        def dependencyNode = dependenciesNode.appendNode('dependency')
                        dependencyNode.appendNode('groupId', it.group)
                        dependencyNode.appendNode('artifactId', it.name)
                        dependencyNode.appendNode('version', it.version)
                    }
                }
            }
        }
    }
}

当我尝试在应用程序中实现此库时,问题出现了。 Gradle尝试仅在存储库中查找所有依赖项,这些存储库在应用程序中指定,而不是在库中指定。应用程序build.gradle:

allprojects {
    repositories {
        mavenLocal()
        jcenter()
        google()
    }
}

compile 'mylib.groupid:mylib.artifactid:mylib.version'

Gradle sync触发错误:错误:无法解析:remote.groudid:remote.artifactid:remote.version

问题可以通过直接添加"一些maven远程依赖"来解决。在应用程序build.gradle存储库中,但我想找到一种不在每个应用程序中手动执行的方法,这将使用此库。有没有办法以某种方式通过我的maven本地回购转移远程maven存储库?我尝试通过放置存储库标记

来修改库pom文件
<repositories>
  <repository>
    <name>Some maven remote dependency</name>
    <url>https://remote.maven.url/</url>
  </repository>
</repositories>

,但那没有用。

0 个答案:

没有答案