¿Cómo hacer archivos JAR de lanzamiento múltiple con Gradle?
Java9 introduce conJAR de lanzamiento múltiple.
Digamos que tengo un proyecto Gradle multimódulo usando java8:
project-root
settings.gradle
build.gradle
/module1
/src
... (common maven structure)
/module2
/module3
Este es un proyecto común de varios módulos en Gradle. Digamos que necesito MR-Jar paramodule1
.
No puedo agregarmodule1-java9
apuntando a Java9 porque la base está en 8, hasta ahora, tanto mi Gradle como IntelliJ IDEA se quejan. Gradle está compilado con java8, pero necesito habilitar java9 runtime solo para el módulo (no sé cómo); en IntelliJ IDEA puedo configurar el tiempo de ejecución java9 para el módulo, pero se sobrescribe cada vez que se vuelve a cargar la configuración de Gradle.
Además, incluso si lo agrego de alguna manera, necesito instruirmodule1
a 1) construir segundo y 2) para incluirmodule1-java9
. Aquí hay un dibujo de esta situación:
project-root
settings.gradle
build.gradle
/module1
/module1-java9 (added java9 module)
/module2
...
Alternativamente, esto podría hacerse bajomodule1
, que tiene diferentes fuentes:src
ysrc-java9
. pero dudo que esto sea aceptado alguna vez. Aquí hay un dibujo:
project-root
settings.gradle
build.gradle
/module1
/src
/src-java9 (added java9 source folder)
/module2
/module3
Hasta ahora solo veo esomodule1-java9
es un proyecto separado (no un módulo) y quemodule1
simplemente llama al gradle allí y toma la salida. Sí, es gradle llamando a gradle :)))
¿Hay alguna forma amigable para los desarrolladores de hacer esto?