【问题标题】:maven plugin to generate pom.xmlmaven插件生成pom.xml
【发布时间】:2014-07-27 02:37:09
【问题描述】:

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

有什么建议吗?

【问题讨论】:

标签: android maven gradle android-studio


【解决方案1】:

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

所以没有

 compile project (':LibA')

而是

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

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

【讨论】:

  • 你不能声明对本地模块的依赖,即 LibA 带有组和版本,它本质上是无版本的
猜你喜欢
  • 2018-03-20
  • 2010-12-04
  • 2022-01-17
  • 2018-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-13
  • 2013-05-05
相关资源
最近更新 更多