Como criar arquivos JAR com várias liberações com Gradle?
Java9 apresenta comJARs de várias liberações.
Digamos que eu tenho o projeto Gradle multimodular usando java8:
project-root
settings.gradle
build.gradle
/module1
/src
... (common maven structure)
/module2
/module3
Este é um projeto multi-módulo comum em Gradle. Digamos que eu precise do MR-Jar paramodule1
.
Não consigo adicionarmodule1-java9
visando Java9 porque a base está em 8 - até agora, tanto o meu Gradle quanto o IntelliJ IDEA reclama. Gradle é compilado com o java8, mas preciso habilitar o tempo de execução do java9 apenas para o módulo (não sei como); no IntelliJ IDEA, posso definir o tempo de execução do java9 para o módulo, mas ele é sobrescrito toda vez que o gradle config é recarregado.
Além disso, mesmo que eu o adicione de alguma forma, preciso instruirmodule1
1) construir segundo e 2) incluirmodule1-java9
. Aqui está um desenho dessa situação:
project-root
settings.gradle
build.gradle
/module1
/module1-java9 (added java9 module)
/module2
...
Como alternativa, isso poderia ser feito sobmodule1
, com fontes diferentes:src
esrc-java9
. mas duvido que isso jamais fosse aceito. Aqui está um desenho:
project-root
settings.gradle
build.gradle
/module1
/src
/src-java9 (added java9 source folder)
/module2
/module3
Até agora eu só vejo issomodule1-java9
é um projeto separado (não um módulo) e quemodule1
simplesmente chama o gradle para lá e pega a saída. Sim, é gradle chamando gradle :)))
Existe alguma maneira amigável de desenvolvedor de fazer isso?