Incluir módulo Gradle al proyecto Maven

Tenemos un gran proyecto que utiliza Maven como sistema de compilación. Decidimos que en futuros proyectos usaremos Gradle como una herramienta más conveniente, pero también queremos usar Gradle para nuestro proyecto heredado.

Creo que migrar de Maven a Gradle a la vez será muy doloroso, porque tenemos TONELADAS de código en los archivos POM (tenemos una lógica de compilación realmente pesada).

Sé que Gradle tiene una herramienta de automatización (gradle init) pero no funciona correctamente (creo que esta herramienta es para pequeños proyectos de Maven sin una lógica de compilación específica).

Entonces, aquí hay una pregunta: ¿puedo incluir el módulo Gradle en el proyecto Maven para migrar con pequeños pasos? Tal vez hay un complemento Maven, que permite tratar build.gradlecomo pom.xmlarchivo?

Respuesta 1

Hay un complemento gradle-maven que le permite ejecutar tareas de Gradle desde Maven. De la descripción del complemento:

Para usar el complemento, simplemente declare el complemento y vincúlelo a la fase de ciclo de vida de Maven que elija:

<plugin>
    <groupId>org.fortasoft</groupId>
    <artifactId>gradle-maven-plugin</artifactId>
    <version>1.0.8</version>
    <configuration>
        <tasks>
            <!-- this would effectively call "gradle doSomething" -->
            <task>doSomething</task>
        </tasks>
    </configuration>
    <executions>
        <execution>
            <!-- You can bind this to any phase you like -->
            <phase>compile</phase>
            <goals>
                <!-- goal must be "invoke" -->
                <goal>invoke</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Ahora, cuando ejecute maven, se invocará gradle y ejecutará la tarea "doSomething" definida en build.gradle.

Obviamente, puede cambiar las tareas para satisfacer sus necesidades.

En este ejemplo, la invocación de gradle ocurrirá durante la fase de "compilación" de Maven, pero esto se puede cambiar fácilmente cambiando el valor del elemento.

No estoy seguro de cómo incluir artefactos de la construcción de Gradle en sus dependencias, es posible que deba publicar este artefacto en el repositorio local de Maven para que esté disponible para su proyecto Maven.

Respuesta: 2

Estoy desarrollando una aplicación que necesita subir algo a un FTP. No he podido hacer que apache commons funcione con la carga de archivos. El archivo cargado tiene 0 bytes. He probado el modo ASCII y binario ...

He creado un bean llamado BaseCron que tiene un método executeBefore () que está configurado en la siguiente configuración de spring para interceptar todas las llamadas a métodos de la clase Crons y ejecutarlas antes. ...

Tengo una interfaz para convertir objetos en cadenas: Public Interface Converter <T> {String asString (objeto T); } Y un mapa para almacenar todos los convertidores disponibles: Mapa <Clase <?>, Convertidor y ...

Estoy tratando de usar y comprender el método del escáner # findWithinHorizon de Java. He escrito el siguiente fragmento de código que utiliza este método, pero no puedo entender cómo funciona. privado ...