嗨,我有一个 gradle android 项目,其中包含两个库模块:
- MyProject
|-- LibA
|-- LibB
所以 LibB 依赖于 LibA。因此 LibB 的 build.gradle 文件如下所示:
apply plugin: 'android-library'
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://$buildDir/repo")
pom.groupId = 'com.test.lib'
pom.version = '1.0'
}
}
}
dependencies {
compile 'com.android.support:support-v4:19.+'
compile project (':LibA')
}
如您所见,我想为我的 gradle 项目中的每个库模块生成 .aar 文件。到目前为止一切顺利,但是生成具有对 LibA 的正确依赖关系的 pom.xml 文件并不像预期的那样工作:
LibB 的 pom.xml 文件如下所示:
<dependency>
<groupId>com.android.support</groupId>
<artifactId>support-v4</artifactId>
<version>19.+</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>MyProject</groupId>
<artifactId>LibA</artifactId>
<version>unspecified</version>
<scope>compile</scope>
</dependency>
有没有办法指定 LibA 的 Maven 依赖项在生成的 pom 文件中的样子。 ActionBar-PullToRefresh 等其他项目是如何做到这一点的?例如: ActionBar-PullToRefresh 有一个 Actionbar sherlock 的子库模块,它依赖于 :library the mail ActionBar-PullToRefresh library
有什么建议吗?
最佳答案
我不太喜欢 gradle,但我不会使用直接指向另一个项目的依赖项,而是使用定义组和 Artifact ID 以及 Artifact 版本的依赖项,就像您对 android 所做的那样支持库。
所以不是
compile project (':LibA')
而是
compile ('com.example.lib:LibA:1.2')
编辑:之前说过“编译项目('com.example.lib:LibA:1.2')”,这是错误的。感谢布伦德尔指出这一点。
关于android - 生成pom.xml的maven插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24071416/