如何解决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())
}