web-dev-qa-db-fra.com

Nom du sous-projet Gradle différent du nom du dossier

J'ai quelques sous-projets qui font partie d'une construction multi-projets (hiérarchie plate). Je veux leur attribuer un nom différent de celui de leur dossier. Cependant dans include (setting.gradle) il doit avoir le nom du dossier sinon il ne le trouvera pas (pareil pour le projet de compilation (': ProjectName')).

Si j'essaie de définir project.name, cela m'indique que c'est en lecture seule. La raison en est que nous effectuons une conversion depuis Ant et que nous souhaitons conserver le même nom pour Eclipse IDE. En ce qui concerne les artefacts, nous utilisons jar.artifactName pour définir le nom que nous voulons.

Merci,

48
Greg Hill

Les noms de projet ne peuvent être modifiés que dans settings.gradle. Par exemple:

include "foo" // or `includeFlat`, doesn't matter

// always good to nail down the root project name, because
// the root directory name may be different in some envs (e.g. CI)
// hence the following even makes sense for single-project builds
rootProject.name = "bar" 

// change subproject name
project(":foo").name = "foofoo"

Vous pouvez également utiliser le nom de projet souhaité dans l'instruction include et reconfigurer ultérieurement le répertoire du projet:

include "foofoo"

project(":foofoo").projectDir = file("foo")

Pour donner un peu de contexte, la seule différence entre include et includeFlat est qu'ils utilisent des valeurs par défaut différentes pour le projectDir du projet. Sinon, ce sont les mêmes.

Pour plus d'informations, consultez Settings dans le Gradle Build Language Reference .

71
Peter Niederwieser