如何解决Gradle构建脚本中的依赖项扩展
我正在使用如何解决Gradle构建脚本中的依赖项扩展,gradle,build.gradle,Gradle,Build.gradle,我正在使用build.gradle中的maven publish插件。对于每个编译依赖项,组、名称和版本用于在生成的pom.xml文件中生成适当的标记,这样做很好 以下是我的示例依赖项: dependencies { compile ( [group: 'com.actionbarsherlock', name: 'actionbarsherlock', version: '4.4.0', ext: 'aar'], [group: 'com.android.support'
build.gradle
中的maven publish
插件。对于每个编译
依赖项,组
、名称
和版本
用于在生成的pom.xml
文件中生成适当的标记,这样做很好
以下是我的示例依赖项:
dependencies {
compile (
[group: 'com.actionbarsherlock', name: 'actionbarsherlock', version: '4.4.0', ext: 'aar'],
[group: 'com.android.support', name: 'support-v4', version: '19.0.+']
)}
以下是我拥有的发布元素:
publishing {
publications {
// A publication named 'mavenAndroid'
mavenPublishLibrary(MavenPublication) {
// Artifact using the aar from the build output
artifact "${project.projectDir}/build/outputs/aar/${project.name}-${project.version}.aar"
// Generate dependencies manually for POM
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
//Iterate over the compile dependencies, adding a <dependency> node for each
configurations.compile.allDependencies.each {
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', it.group)
dependencyNode.appendNode('artifactId', it.name)
dependencyNode.appendNode('version', it.version)
// This is what I'd want to do...
if (it.ext != '') {
dependencyNode.appendNode('type', it.ext)
}
// ...but this doesn't work!
}
}
}
}
}
发布{
出版物{
//名为“mavenAndroid”的出版物
mavenPublishLibrary(MavenPublish){
//使用来自构建输出的aar的工件
工件“${project.projectDir}/build/outputs/aar/${project.name}-${project.version}.aar”
//为POM手动生成依赖项
pom.withXml{
def dependenciesNode=asNode().appendNode('dependencies'))
//迭代编译依赖项,为每个依赖项添加一个节点
configurations.compile.allDependencies.each{
def dependencyNode=dependenciesNode.appendNode('dependency'))
dependencyNode.appendNode('groupId',it.group)
dependencyNode.appendNode('artifactId',it.name)
dependencyNode.appendNode('version',it.version)
//这就是我想做的。。。
如果(it.ext!=''){
dependencyNode.appendNode('type',it.ext)
}
//……但这行不通!
}
}
}
}
}
我希望能够将
ext
值(例如aar
)与组
、名称
和版本
一起添加到pom.xml
,就像我在上面的代码片段中所做的那样,然后我似乎总是在问了之后马上回答自己
我使用以下方法获得依赖项扩展,替换问题中的if()
:
it.getArtifacts().each {
dependencyNode.appendNode('type', it.getExtension())
}