it-swarm.com.de

Wie wird der Projektname / die Gruppe / die Version sowie die {Quell-, Ziel-} Kompatibilität in derselben Datei festgelegt?

Ich beabsichtige, die Verwendung von gradle für meine Projekte zu verallgemeinern und möchte dieselbe Build-Datei überall wiederverwenden. Leider habe ich Probleme, die in $ subject genannten Eigenschaften in einer einzigen Datei zu definieren, um die Migration zu vereinfachen.

Das ist gradle 1.6.

Was ich versucht habe, scheitern bei allen Versuchen:

  • gradle.properties: Name kann nicht geändert werden (schreibgeschützt, es muss ein settings.gradle Verwendet werden, und der Stammname muss überschrieben werden!) ; {source,target}Compatibility Nicht berücksichtigt;
  • settings.gradle: {source,target}Compatibility Auch nicht berücksichtigt!

Also, was ist die richtige Methode, um dies zu erreichen? Was ich bisher in gradle.properties Ausprobiert habe:

group = something
name = whatever  # cannot do!
version = whatever
sourceCompatibility = whatever # not taken into account!

Und in settings.gradle:

sourceCompatibility = "whatever";  # not taken into account!

EDIT Nun, das "Name" -Problem kann einfach nicht gelöst werden; Im Übrigen habe ich eine andere Datei verwendet, die ich in der Build-Datei anwende. Das "Name" -Handling stimmt wirklich nicht: /

EDIT 2 Dies ist jetzt 2014 und Gradle 1.12, und das Problem ist immer noch nicht gelöst ...

78
fge

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
119

Ich habe die Lösung für ein ähnliches Problem gefunden. Ich verwende Gradle 1.11 (Stand April 2014). Der Projektname kann wie folgt direkt in der Datei settings.gradle Geändert werden:

  rootProject.name='YourNewName'

Dies kümmert sich um das Hochladen in das Repository (Artifactory mit seinem Plugin für mich) mit der richtigen ArtifactId.

22
zggame

Ich habe den Basisnamen des Artefakts so festgelegt, dass er unabhängig vom Namen des Build-Projekts ist, sodass ich das erreichen kann, was Sie möchten:

jar {
    baseName "core"
}

Mit dieser Eigenschaft, auch wenn mein Projektname "foo" ist, wenn ich gradle install wird das Artefakt mit dem Namen core anstelle von foo veröffentlicht.

20
Jeff

Anscheinend wäre dies möglich in settings.gradle mit so etwas.

rootProject.name = 'someName'
gradle.rootProject {
    it.sourceCompatibility = '1.7'
}

Ich habe kürzlich den Rat erhalten, dass eine Projekteigenschaft mithilfe eines Abschlusses festgelegt werden kann, der später aufgerufen wird, wenn das Projekt verfügbar ist.

3
Eero Aaltonen

benutze buildSrc mit Gradle Kotlin DSL siehe voll funktionsfähiges Beispiel hier: GitHub daggerok/spring-fu-jafu-Beispiel buildSrc/src/main/Java/Globals.kt

0