J'ai l'intention de généraliser l'utilisation de gradle pour mes projets et j'aimerais réutiliser le même fichier de construction partout. Malheureusement, j'ai du mal à définir les propriétés mentionnées dans $ subject dans un seul fichier, afin de faciliter la migration.
C'est le grade 1.6.
Ce que j'ai essayé, en échouant à toutes les tentatives:
gradle.properties
: impossible de modifier le nom (en lecture seule, il faut utiliser un settings.gradle
et remplacez le racine nom du projet!); {source,target}Compatibility
non pris en compte;settings.gradle
: {source,target}Compatibility
non pris en compte non plus!Alors, quelle est la bonne méthode pour y parvenir? Ce que j'ai essayé jusqu'ici dans gradle.properties
:
group = something
name = whatever # cannot do!
version = whatever
sourceCompatibility = whatever # not taken into account!
Et en settings.gradle
:
sourceCompatibility = "whatever"; # not taken into account!
EDIT Eh bien, le problème du "nom" ne peut simplement pas être résolu; pour le reste, j'ai utilisé un autre fichier que j'applique dans le fichier de construction. La manipulation de "name" n'est vraiment pas correcte: /
EDIT 2 Ceci est maintenant 2014 et le niveau 1.12, et le problème n'est toujours pas résolu ...
gradle.properties:
theGroup=some.group
theName=someName
theVersion=1.0
theSourceCompatibility=1.6
settings.gradle:
rootProject.name = theName
build.gradle:
apply plugin: "Java"
group = theGroup
version = theVersion
sourceCompatibility = theSourceCompatibility
J'ai trouvé la solution à un problème similaire. J'utilise Gradle 1.11 (en avril 2014). Le nom du projet peut être changé directement dans settings.gradle
fichier comme suit:
rootProject.name='YourNewName'
Cela prend en charge le téléchargement vers le référentiel (Artifactory avec son plugin pour moi) avec le correct artefactId.
J'ai défini l'artefact baseName de sorte qu'il soit indépendant du nom du projet de construction, ce qui me permet de réaliser ce que vous voulez:
jar {
baseName "core"
}
Avec cette propriété, même si mon nom de projet est "foo", quand je lance gradle install
, l'artefact est publié sous le nom core
au lieu de foo
.
Apparemment, cela serait possible dans settings.gradle
avec quelque chose comme ça.
rootProject.name = 'someName'
gradle.rootProject {
it.sourceCompatibility = '1.7'
}
J'ai récemment reçu un avis indiquant qu'une propriété de projet peut être définie à l'aide d'une fermeture qui sera appelée ultérieurement lorsque le projet sera disponible.
utilisez buildSrc avec Gradle Kotlin DSL voir l'exemple complet complet ici: GitHub daggerok/spring-fu-jafu-example buildSrc/src/main/Java/Globals.kt