2017-05-12 4 views
0

Ich benutze die Gradle 'Anwendung' Plugin, um meine Anwendung zu starten. Das funktioniert gut. Jetzt möchte ich die Option hinzufügen, um eine andere Hauptklasse im selben Projekt zu starten. Kann ich die Konfiguration des Plugins ändern, um das zu ermöglichen?Gradle Anwendung Plugin mit mehreren Hauptklassen

apply plugin: 'application' 

mainClassName = "net.worcade.my.MainClass" 
+0

Was ist die Bedingung, die Sie auf diese bedingte Config basieren soll? –

+0

Ich bin offen für Vorschläge. Ein Kommandozeilenparameter, ein "-D" -Argument ... – Jorn

+0

Aber es muss eine Bedingung geben, in der du willst, dass dies die Hauptklasse ist..was ist das? –

Antwort

2

Von http://mrhaki.blogspot.com/2010/09/gradle-goodness-run-java-application.html

apply plugin: 'java' 

task(runSimple, dependsOn: 'classes', type: JavaExec) { 
    main = 'com.mrhaki.java.Simple' 
    classpath = sourceSets.main.runtimeClasspath 
    args 'mrhaki' 
    systemProperty 'simple.message', 'Hello ' 
} 

Offensichtlich dann, was Sie ändern können:

  • runSimple können, was Sie
  • wollen genannt werden
  • Haupt gesetzt entsprechend
  • klar aus args und systemProperty, wenn nicht benötigt

auszuführen:

gradle runSimple 

Sie wie viele von ihnen setzen können, wie Sie in Ihrer build.gradle Datei mögen.

0

Verwenden javaExec Aufgabe es zu handhaben:

task run(type: JavaExec) { 
    classpath = sourceSets.main.runtimeClasspath 

    if (project.hasProperty('first')){ 
     if (chooseMain == 'Main1'){ 
      main = 'application.Main1' 
     } else if (chooseMain == 'second'){ 
      main = 'application.Main2' 
     } 
    } else { 
     println 'please pass the main name' 
    } 
} 

Und von der Kommandozeile auf diese Weise Ihre Wahl übergeben:

gradle run -PchooseMain=first 
Verwandte Themen