En la hormiga Maven Ant Tasks se puede utilizar para leer las propiedades de Maven como esto:¿Lectura de información del archivo pom.xml existente usando Gradle?
<artifact:pom id="mypom" file="pom.xml" />
<echo>The version is ${mypom.version}</echo>
¿Existe apoyo "nativo" en Gradle para acceder a los elementos del pom de un archivo pom.xml física existente o tengo que ir a través de el enfoque Ant anterior en mi archivo .gradle para hacer que esto funcione?
Esta página:
http://gradle.org/docs/current/userguide/maven_plugin.html
tiene información sobre la generación de archivos pom pero eso no es lo que estoy buscando. He tratado de crear un archivo .gradle que hace lo mismo:
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
}
donde tengo un pom.xml sencilla situada junto al archivo build.gradle. Pero no puedo encontrar ninguna información en los documentos de gradle sobre las llamadas de hormiga correspondientes para esta tarea. He mirado:
http://www.gradle.org/docs/current/userguide/ant.html
de cómo leer las propiedades de hormigas y las referencias que esto:
<artifact:pom id="mypom" file="maven-project/pom.xml" />
parece ser ni una propiedad o de referencia. Me encontré con esta página:
donde se utiliza un NamespaceBuilder:
def mvn = groovy.xml.NamespaceBuilder.newInstance(ant, 'antlib:org.apache.maven.artifact.ant')
pero cuando se utiliza este enfoque me sale:
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
después de un poco de google Encontré:
http://issues.gradle.org/browse/GRADLE-2385
que parece estar relacionado, pero el valor de la propiedad sigue siendo nulo.
¿Por qué esperas que esto esté documentado en los documentos de Gradle? Tendrás que buscar en la documentación de 'maven-ant-tasks'. –
He leído los documentos para maven-ant-tasks que simplemente dice que la información de pom se puede leer definiendo que luego se puede usar como La versión es $ {mypom.version} . Pero, ¿cómo leo la etiqueta en gradle después de configurar la ruta de clases para incluir las tareas maven-ant-tasks? –
u123
'artifact: pom' es una tarea Ant. Consulte el capítulo [Uso de Ant de Gradle] (http://gradle.org/docs/current/userguide/userguide_single.html#ant) en la guía del usuario de Gradle para saber cómo trabajar con las tareas Ant. Después de ejecutar la tarea, puede tomar la referencia 'mypom'. No estoy seguro de cómo proceder desde allí. Usar 'XmlSlurper' sería mucho más simple. –