我正在使用maven-publish插件将aar文件发布到maven存储库。但是我注意到,即使添加了传递属性,编译依赖项也没有添加到pom.xml中。我正在使用com.android.tools.build:gradle:1.1.3
有关如何解决此问题的任何提示?
的build.gradle
publishing {
publications {
sdkAar(MavenPublication) {
artifacts {
groupId 'com.test'
artifactId 'my_sdk'
version currentVersion
artifact 'build/outputs/aar/release.aar'
artifact androidJavadocsJar {
classifier "javadoc"
}
}
}
sdkJar(MavenPublication) {
groupId 'com.test'
artifactId 'my_sdk_jar'
version currentVersion
artifact 'build/libs/release.jar'
artifact androidJavadocsJar {
classifier "javadoc"
}
}
}
repositories {
maven {
credentials {
username archiva_username
password archiva_password
}
}
}
}
先谢谢
答案 0 :(得分:1)
如果要将依赖项自动添加到POM,则需要使用组件功能。以下是用户指南中的示例:
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
from ...
很重要。我不知道Android插件是否设置了自己的软件组件。我看不到任何对此类事物的引用。
请记住,新的发布机制目前正在孵化,也许这就是为什么Android插件目前不提供任何直接支持的原因。
如果您确实想使用发布插件,则可以获取工件的运行时依赖项,并使用the syntax described in the user guide手动将它们添加到POM中。我不推荐这种方法,因为它很麻烦,看起来容易出错。
答案 1 :(得分:0)
依赖项未自动添加,您需要添加发布标记。
publishing {
publications {
aar(MavenPublication) {
groupId libraryGroupId
version = libraryVersion
artifactId libraryArtifactId
artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")
pom.withXml {
def dependencies = asNode().appendNode('dependencies')
configurations.getByName("_releaseCompile").getResolvedConfiguration().getFirstLevelModuleDependencies().each {
def dependency = dependencies.appendNode('dependency')
dependency.appendNode('groupId', it.moduleGroup)
dependency.appendNode('artifactId', it.moduleName)
dependency.appendNode('version', it.moduleVersion)
}
}
}
}