Dir intermediário Gradle de multiprojeto, não subprojeto
-
21-12-2019 - |
Pergunta
No RootProject, tenho build.gralde e settings.gradle.comum, subProj1 e subProj2 são subprojetos em settings.gradle
intermediárioDir NÃO É um subprojeto!É utilizado apenas para agrupar o subProj1, subProj2, pois estão relacionados.
Toda vez que executo o "gradle eclipse" no diretório raiz, recebo os arquivos .classpath e .project também no intermediaDir, o que não deveria, pois este não é um subprojeto!Então, basicamente, intermediaDir é considerado um subprojeto para algumas tarefas, mesmo que não esteja em settings.gradle.Alguma maneira rápida de contornar isso?
Solução
Do jeito que você escreveu settings.gradle
, o diretório intermediário é um subprojeto.Muitas vezes isso é desejável, pois permite configurar e executar facilmente seus projetos filhos de uma só vez, mesmo que o projeto intermediário não tenha nenhum arquivo ou tarefa própria.
Para se livrar de comportamentos indesejados em um projeto intermediário, certifique-se de não aplicar esse comportamento (por exemplo, apply plugin: "eclipse"
) para esse projeto (provavelmente você está aplicando-o a allprojects
agora) ou alterar settings.gradle
para não criar um projeto intermediário.Por exemplo:
include "common"
// name it any way you like, but not
// "intermediateDir:subProj1", i.e. no ":"
include "subProj1"
include "subProj2"
project(":subProj1").projectDir = file("intermediateDir/subProj1")
project(":subProj2").projectDir = file("intermediateDir/subProj2")