2017-10-05 1 views
0

Sur la base de la documentation:Lorsque -b est spécifié settings.gradle est toujours utilisé, même si ce n'est pas le cas. Pourquoi?

Si vous utilisez l'option -b puis fichier settings.gradle n'est pas utilisé.

Mais j'ai créé ce projet simple:

. 
├── anotherBuild.gradle 
├── build.gradle 
└── settings.gradle 

Avec build.gradle contenant:

task taskA{ 
    doLast{ 
     println "taskA from build.gradle" 
    } 
} 

anotherBuild.gradle contenant:

task taskA{ 
    doLast{ 
     println "taskA from anotherBuild.gradle" 
    } 
} 

et settings.gradle contenant:

println "From settings.gradle, executed during initialization phase" 

Quand je lance:

gradle -q -b anotherBuild.gradle taskA 

je peux voir que des impressions de Gradle "De settings.gradle, exécutés pendant la phase d'initialisation" de toute façon. Pourquoi ça? Le code settings.gradle ne doit-il pas être ignoré lors de l'utilisation de -b?

+0

Vous avez raison, désolé! Quelle version utilisez vous? – Opal

+0

C'est bon :) J'utilise Gradle 4.0. – acejazz

+0

Hmm .. J'ai préparé un exemple qui reproduit le problème, étrange. Cela peut être de votre intérêt: https://discuss.gradle.org/t/how-to-set-multiproject-with-customized-build-script-b/7440/9 – Opal

Répondre

1

Il est probablement un bug que le settings.gradle est utilisé bien que -b soit spécifié, mais -b est uniquement destiné à des tests et des expérimentations rapides de toute façon. À mon avis, vous devriez toujours avoir un settings.gradle e. g. pour spécifier explicitement le nom du projet racine au lieu de le dériver du nom du répertoire racine du projet. Ce que vous pouvez faire si vous avez vraiment besoin de différents scripts de construction les uns à côté des autres est d'avoir différents scripts de paramètres qui pointent vers les différents scripts de construction, puis d'utiliser le -c pour sélectionner le bon script de paramètres au lieu de -b.

+0

C'est la documentation d'avoir tort. https://github.com/gradle/gradle/issues/3100 – acejazz