Чтение информации из существующего файла pom.xml с помощью Gradle?

В Ant Maven Ant Tasks можно использовать для чтения свойств maven, подобных этому:


The version is ${mypom.version}

Есть ли в Gradle «встроенная» поддержка для доступа к элементам pom из существующего физического файла pom.xml или мне нужно пройти описанный выше подход Ant в моем файле.gradle, чтобы это сработало?

Эта страница:

http://gradle.org/docs/current/userguide/maven_plugin.html

есть информация о создании файлов pom, но это не то, что я ищу. Я попытался создать файл.gradle, который делает то же самое :

    repositories {
      mavenCentral()
    }

    configurations {
        mavenAntTasks
    }

    dependencies {
        mavenAntTasks 'org.apache.maven:maven-ant-tasks:2.1.1'
    }

    task hello << {
      ant.taskdef(resource: 'org/apache/maven/artifact/ant/antlib.xml',
                  uri: 'antlib:org.apache.maven.artifact.ant',
                  classpath: configurations.mavenAntTasks.asPath)

     // what is the gradle syntax for this:
     // 
     // its not a property or a task...
     def artifact = groovy.xml.NamespaceBuilder.newInstance(ant,'antlib:org.apache.maven.artifact.ant')
     artifact.pom(id:'mypom', file: 'pom.xml')
     def text = properties['mypom.version']
     println "From pom file: " + text 

    }

. где у меня есть простой файл pom.xml, расположенный рядом с файлом build.gradle. Но я не могу найти никакой информации в документах Gradle о соответствующих муравьиных вызовах для этой задачи. Я посмотрел на:

http://www.gradle.org/docs/current/userguide/ant.html

как читать свойства и ссылки муравья, но это:


не является ни свойством, ни ссылкой. Я наткнулся на эту страницу:

http://snipplr.com/view/4082/

где используется NamespaceBuilder :

 def mvn = groovy.xml.NamespaceBuilder.newInstance(ant, 'antlib:org.apache.maven.artifact.ant')

но при использовании этого подхода я получаю:

The AbstractTask.getDynamicObjectHelper() method has been deprecated and will be removed in the next version of Gradle. Please use the getAsDynamicObject() method instead.
From pom file: null

немного погуглив я нашел:

http://issues.gradle.org/browse/GRADLE-2385

что кажется связанным, но значение свойства по-прежнему равно нулю.

7
задан u123 19 July 2012 в 19:20
поделиться