Gradle build.gradle a Maven pom.xml

Tengo un proyecto de Gradle y necesito que todas sus dependencias se transfieran y utilicen con otro proyecto de Maven. En otras palabras, ¿cómo puedo generar (o puedo generar) el pom.xml de build.gradle?

La solución más incorporada probablemente sea usar la tarea archiveTask en Maven Plugin que generará un pom en la carpeta poms en su directorio de comstackción. http://www.gradle.org/docs/current/userguide/maven_plugin.html#sec:maven_pom_generation

Al usar el plugin Maven de Gradle , la tarea de instalación se agrega automáticamente a sus tareas, y al llamarla siempre se generará un archivo POM.

Entonces, si su archivo build.gradle se ve así:

 apply plugin: 'java' apply plugin: 'maven' group = 'myGroup' // artifactId is taken by default, from folder name version = '0.1-SNAPSHOT' dependencies { compile 'commons-lang:commons-lang:2.3' } 

puede llamar a gradle install en su carpeta, encontrará en la subcarpeta build / poms , un archivo llamado pom-default.xml que contendrá las dependencias. Además, el JAR construido junto con el POM estará en su repository local de Maven.

Como no quería instalar nada en mi repository local, sí lo hice después de leer documentos. Agregue en su build.gradle

 apply plugin: 'maven' group = 'com.company.root' // artifactId is taken by default, from folder name version = '0.0.1-SNAPSHOT' task writeNewPom < < { pom { project { inceptionYear '2014' licenses { license { name 'The Apache Software License, Version 2.0' url 'http://www.apache.org/licenses/LICENSE-2.0.txt' distribution 'repo' } } } }.writeTo("pom.xml") } 

ejecutarlo gradle writeNewPom

@un caballo sin nombre

gradle está hecho con groovy puede intentar agregar después de terminar} project block

 build{ plugins{ plugin{ groupId 'org.apache.maven.plugins' artifactId 'maven-compiler-plugin' configuration{ source '1.8' target '1.8' } } } } 

no lo intenté, supongo!

Cuando no tiene instalado gradle, la “tarea de escribir gradle para hacer esto” no es muy útil. En lugar de instalar esta bestia de 100MB con dependencias, hice el filtro convirtiendo las dependencias de gradle en dependencias de maven:

 cat build.gradle\ | awk '{$1=$1};1'\ | grep -i "compile "\ | sed -e "s/^compile //Ig" -e "s/^testCompile //Ig"\ | sed -e "s/\/\/.*//g"\ | sed -e "s/files(.*//g"\ | grep -v ^$\ | tr -d "'"\ | sed -e "s/\([-_[:alnum:]\.]*\):\([-_[:alnum:]\.]*\):\([-+_[:alnum:]\.]*\)/\n\t\1< \/groupId>\n\t\2< \/artifactId>\n\t\3< \/version>\n< \/dependency>/g" 

Esto convierte

 compile 'org.slf4j:slf4j-api:1.7.+' compile 'ch.qos.logback:logback-classic:1.1.+' compile 'commons-cli:commons-cli:1.3' 

dentro

  org.slf4j slf4j-api 1.7.+   ch.qos.logback logback-classic 1.1.+   commons-cli commons-cli 1.3  

El rest de pom.xml debe crearse a mano.