我有一个Gradle项目我正在使用 maven-publisher 插件将我的android库安装到maven local和maven repo .
这可行,但生成的pom.xml不包含任何依赖项信息 . 是否有解决方法来包含该信息,或者我是否被迫返回 maven 插件并执行所需的所有手动配置?
研究我意识到我只是指定输出/工件,所以我需要一种方法将这个MavenPublication链接到依赖项,但我还没有找到如何在文档中这样做 .
------------------------------------------------------------
Gradle 1.10
------------------------------------------------------------
Build time: 2013-12-17 09:28:15 UTC
Build number: none
Revision: 36ced393628875ff15575fa03d16c1349ffe8bb6
Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.9.2 compiled on July 8 2013
Ivy: 2.2.0
JVM: 1.7.0_60 (Oracle Corporation 24.60-b09)
OS: Mac OS X 10.9.2 x86_64
相关的build.gradle部分
//...
apply plugin: 'android-library'
apply plugin: 'robolectric'
apply plugin: 'maven-publish'
//...
repositories {
mavenLocal()
maven {
name "myNexus"
url myNexusUrl
}
mavenCentral()
}
//...
android.libraryVariants
publishing {
publications {
sdk(MavenPublication) {
artifactId 'my-android-sdk'
artifact "${project.buildDir}/outputs/aar/${project.name}-${project.version}.aar"
}
}
repositories {
maven {
name "myNexus"
url myNexusUrl
credentials {
username myNexusUsername
password myNexusPassword
}
}
}
}
生成的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example.android</groupId>
<artifactId>my-android-sdk</artifactId>
<version>gradle-SNAPSHOT</version>
<packaging>aar</packaging>
</project>
3 回答
通过让脚本直接使用
pom.withXml
将依赖项添加到pom,我能够解决这个问题 .这适用于我的项目,它可能会在其他项目中产生无法预料的后果 .
我升级了C.Ross解决方案 . 此示例将生成pom.xml,其中包含来自编译配置的依赖项以及特殊构建类型依赖项,例如,如果对发布或调试版本使用不同的依赖项(debugCompile和releaseCompile) . 而且它还添加了exlusions
我想这与
from components.java
指令有关,如guide所示 . 我有一个类似的设置,它的不同之处在于将该行添加到发布块中: