【发布时间】:2016-11-15 18:49:37
【问题描述】:
我有一个 Android 闭源模块,将在其他项目中用作库。它包含外部依赖项。
为了发布它,我正在使用以下 gradle 任务创建一个 Maven 工件:
apply plugin: 'maven'
def coreAarFile = file('...build\\outputs\\aar\\android-sdk-release.aar')
artifacts {
archives coreAarFile
}
uploadArchives {
repositories.mavenDeployer {
repository(url: "file://.\\mvn-repo")
pom.project {
groupId 'a.blabla'
artifactId 'blabla-sdk'
version "1.0.0"
}
}
}
它可以毫无问题地生成 .aar 文件、pom.xml 等。
然后我创建一个项目,该项目对我声明的库具有依赖关系。它一直工作到需要访问外部依赖项,然后抛出类未找到异常。
如何编辑我的 gradle 任务以包含外部依赖项或至少引用它们?它们发布在 mvnrepository.com 和 github.com。
【问题讨论】:
-
通常,您的依赖项的工件 ID 会自动添加到 POM 中。您可能需要检查与 AAR 一起部署的 POM,并查看其中是否标识了依赖项。
-
我希望我的 POM 将包含
元素的列表。不幸的是,它没有。 -
哦,等等。为什么
uploadArchives不在真正的build.gradle文件中,您实际上是在其中构建工件?您的脚本似乎只是试图发布一个裸 AAR。依赖信息通常在真正的build.gradle文件中,如果您的uploadArchives是该脚本的一部分,则该文件将包含在内。 -
uploadArchives 在我的项目(根目录)的 build.gradle 中。应该在模块的build.gradle中吗?
-
是的。例如,请参阅this one from one of my libraries。