2015-01-21 12 views
5

Hier sind meine Eingaben:Gradle Lauf-Konfigurationen mit unterschiedlichen Eigenschaften

Main.java

package com; 

public class Main { 

    public static void main(String[] args) { 
     System.out.println(System.getProperty("greeting.language")); 
    } 
} 

build.gradle

apply plugin: 'java' 
apply plugin: 'application' 

sourceCompatibility = 1.7 
version = '1.0' 

mainClassName = "com.Main" 

applicationDefaultJvmArgs = ["-Dgreeting.language=en"] 

Meine Frage: Wie kann ich eine andere Sicht Task-Konfiguration konfigurieren, Verwenden Sie verschiedene jvm-Argumente, zum Beispiel: -Dgreeting.language = ch.

Ich zog nach Maven, also würde ich für solche Fälle Maven-Profile verwenden. Gibt es eine Struktur in Gradle, die Profilen entspricht?

UPDATE 1

Lassen Sie mich eine Aufgabe, ein wenig klären. Mein Projekt ist weitaus komplexer als das Beispiel, das ich oben gegeben habe. Ich hätte gerne eine Reihe von Aufgaben (oder Profile/oder was auch immer es in Großbuchstaben genannt wird), jede Aufgabe sollte in sich abgeschlossen sein mit benutzerdefinierten Menge von Variablen. Als Ausgang würde Ich mag an gradle Aufgabe gesetzt haben:

gradle <enableAllFeatures> 
gradle <disableFeatureA> 
... 

Es ist keine Voraussetzung für diese Variablen JvmArgs zu sein. Es könnte Konstanten (oder was auch immer möglich in gradle), aber es ist Anforderung unterschiedliche Aufgaben haben, und jede Aufgabe angeben soll es eigene Reihe von Variablen

UPDATE 2

ist ich Internet surfen und fand sehr interessantes Thema - Gradle Build-Varianten, aber es scheint nur für Android-Projekte anwendbar. Ist es möglich, Build-Varianten in Java-Projekten zu verwenden?

+0

Build-Varianten Sie sind nur android erwähnt. Sie können sie einfach auf verschiedene Arten simulieren. – Opal

+0

Könnten Sie bitte beschreiben Sie sie oder teilen Sie den Link, wo diese Möglichkeiten beschrieben werden? –

+0

Ich weiß nur über sie:/Sie können z.B. Verwenden Sie die Filterung mit dem Filter "ReplaceTokens", wenden Sie sie aus verschiedenen Einstellungen an, geben Sie Regeln ein. Gradle ist wirklich flexibles Werkzeug .. – Opal

Antwort

2

die Sprache wie folgt parametrisieren:

applicationDefaultJvmArgs = ["-Dgreeting.language=${language}"] 

Dann, wenn Sie Gradle ausführen, die Sprache als Parameter übergeben die Option -P verwenden:

$ gradle -Planguage=en tasks 

oder

$ gradle -Planguage=ch tasks 

Referenzen

Gradle Goodness: Using Properties for Multiple Environments or Profiles

Similar Maven profile Gradle

+0

Vielen Dank für Ihre Antwort, aber es ist nicht genau das, was ich tun möchte. Ich möchte vermeiden, Parameter in der Befehlszeile anzugeben. Mein Projekt ist viel komplexer und verwendet viel mehr Variablen. Mein Ziel ist: wenn ein neues Teammitglied ins Projekt kommt - er läuft nur 'grandle ' und hat alle Projekte in Betrieb und vermeidet jegliche Konfiguration. –

+1

Ok, das war nicht klar von deiner Frage. Was du suchst, ist auf der Seite, die ich referenzierte [Ähnliche Maven Profil Gradle] (http://www.coderanch.com/t/603665/tools/similar-Maven-profile-Gradle). Bitte lesen Sie das und lassen Sie mich wissen, ob es für Sie arbeiten kann. – gknicker

+0

Scheint eine bessere Lösung zu sein, danke! –

Verwandte Themen