嗨,我有一个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

有什么建议吗?

最佳答案

我并不是真的很喜欢,但是我不会使用直接指向另一个项目的依赖项,而是使用一个定义组和 Artifact ID以及 Artifact 版本的依赖项,就像对android支持库所做的那样。

所以不

 compile project (':LibA')

反而
 compile ('com.example.lib:LibA:1.2')

编辑:之前说过“编译项目('com.example.lib:LibA:1.2')”,这是错误的。感谢布伦德尔指出这一点。

07-24 09:47
查看更多