2017-03-15 2 views
0

Ich entwickle ein benutzerdefiniertes Gradle-Plugin. An der Spitze der build.gradle Datei des Plugins angeben ich die Versionsnummer des Plug-in:Verwalten von Versionsnummern in einem benutzerdefinierten Gradle-Plugin

version '0.1.3'

ich eine Reihe von Gradle Projekten, die ich während meiner benutzerdefinierten Plugins Modul- und Integrationstestphase verwenden. Für jedes dieser Projekte muss ich das JAR meines benutzerdefinierten Plugins als eine Abhängigkeit in der Datei build.gradle des Projekts deklarieren. Zum Beispiel:

classpath files('libs/UmpleGradlePlugin-0.1.3.jar')

Idealerweise würde ich die Versionsnummer an einem Ort geschrieben habe, anstatt explictly es in jedem Testprojekt zu schreiben ich verwende. Zu diesem Zweck habe ich eine Konstanten-Datei erstellt, Constants.java, die static final string VERSION_NUMBER = "0.1.3" enthält. Ich möchte VERSION_NUMBER in den Build-Dateien meiner Projekte lieber als die Versionsnummer explizit schreiben.

Ich habe Constants.java kompiliert und Constants.class zu classpath hinzugefügt. Allerdings, wenn ich versuche Constants.VERSION_NUMBER in einer build.gradle-Datei zu verwenden, Gradle denkt Ich versuche, eine Eigenschaft zu verwenden, die nicht existiert:

FAILURE: Build failed with an exception. Could not find property 'Constants' on root project 'UmpleGradlePlugin'.

Wie kann ich VERSION_NUMBER in einer Build-Datei verwenden?

Antwort

1

Wenn Sie die Klasse von build.gradle verwenden möchten, müssen Sie es als Abhängigkeit buildscript hinzuzufügen:

buildscript { 
    dependencies { 
     classpath files('libs/UmpleGradlePlugin-0.1.3.jar') 
    } 
} 

Und nachdem Sie können es direkt von build.gradle verwenden. Zum Beispiel:

println("pi = ${Math.PI}") // works and prints static variable. 
println("2 * pi = ${java.lang.Math.PI}") // works fine too 

Ich denke Linie „import com.package.Constants“ ist nicht erforderlich, aber ich bin mir nicht sicher darüber.

+0

Ich möchte eine Klasse * in * 'build.gradle' verwenden. Ich möchte das 'VERSION_NUMBER' Feld von' Constants.java' in 'build.gradle' verwenden. – Adam

+0

Sorry für mein Englisch, ich meinte, dass Sie Klasse * in * build.gradle verwenden können, wenn Sie es als Buildscript-Abhängigkeit hinzufügen. – Kright

+0

Oh! Das ist praktisch, danke für die Klarstellung. Kann ich eine einzelne Klassendatei anstelle eines '.jar's hinzufügen? Vielleicht etwas wie 'Klassenpfad-Dateien ('Math.class')'? Ich habe nur eine Datei mit Versionsinformationen, die ich brauche. – Adam

Verwandte Themen