Lesen von Informationen aus der vorhandenen pom.xml-Datei mit Gradle?
In Ant theMaven Ant Aufgaben kann zum Lesen von Maven-Eigenschaften wie folgt verwendet werden:
<artifact:pom id="mypom" file="pom.xml" />
<echo>The version is ${mypom.version}</echo>
Gibt es in Gradle eine "native" Unterstützung für den Zugriff auf pom-Elemente aus einer vorhandenen physischen pom.xml-Datei, oder muss ich in meiner .gradle-Datei den obigen Ant-Ansatz durchgehen, damit dies funktioniert?
Diese Seite:
http://gradle.org/docs/current/userguide/maven_plugin.html
hat Infos zum Generieren von POM-Dateien, aber das ist nicht das, wonach ich suche. Ich habe versucht, eine .gradle-Datei zu erstellen, die dasselbe tut:
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:
// <artifact:pom id="mypom" file="maven-project/pom.xml" />
// 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
}
Hier habe ich eine einfache pom.xml-Datei neben der build.gradle-Datei. Aber ich kann in den gradle docs keine Informationen zu den entsprechenden Ameisenaufrufen für diese Aufgabe finden. Ich habe angeschaut:
http://www.gradle.org/docs/current/userguide/ant.html
Um zu erfahren, wie man Eigenschaften und Referenzen von Ameisen liest, gehen Sie wie folgt vor:
<artifact:pom id="mypom" file="maven-project/pom.xml" />
scheint weder eine Eigenschaft noch eine Referenz zu sein. Ich bin auf diese Seite gestoßen:
wo einNamespaceBuilder wird eingesetzt:
def mvn = groovy.xml.NamespaceBuilder.newInstance(ant, 'antlib:org.apache.maven.artifact.ant')
aber wenn ich diesen Ansatz benutze, erhalte ich:
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
nach ein bisschen googeln fand ich:
http://issues.gradle.org/browse/GRADLE-2385
Das scheint verwandt zu sein, aber der Wert der Eigenschaft ist immer noch null.