Natürlich sind die Antworten vor allem die Arbeit machen, aber immer noch würde Ich mag etwas verwenden, wie
gradle run path1 path2
auch dies kann nicht getan werden, aber was ist, wenn wir können:
gralde run --- path1 path2
Wenn Sie denken, es ist eleganter, dann können Sie es tun, der Trick, um die Befehlszeile zu verarbeiten ist und ändern Sie es vor gradle der Fall ist, kann dies durch Verwendung init scripts
erfolgen
Das Init-Skript unter:
- Prozess der Befehlszeile, und entfernen Sie --- und alle anderen Argumente folgenden '---'
- Eigenschaft hinzufügen 'appArgs' Gradle.ext
So in Ihrer Lauf Aufgabe (oder JavaExec, Exec) können Sie:
if (project.gradle.hasProperty("appArgs")) {
List<String> appArgs = project.gradle.appArgs;
args appArgs
}
Das Init-Skript ist:
import org.gradle.api.invocation.Gradle
Gradle aGradle = gradle
StartParameter startParameter = aGradle.startParameter
List tasks = startParameter.getTaskRequests();
List<String> appArgs = new ArrayList<>()
tasks.forEach {
List<String> args = it.getArgs();
Iterator<String> argsI = args.iterator();
while (argsI.hasNext()) {
String arg = argsI.next();
// remove '---' and all that follow
if (arg == "---") {
argsI.remove();
while (argsI.hasNext()) {
arg = argsI.next();
// and add it to appArgs
appArgs.add(arg);
argsI.remove();
}
}
}
}
aGradle.ext.appArgs = appArgs
Einschränkungen:
- Ich war gezwungen zu verwenden '---' und nicht '-'
- Sie haben Einige globale Init-Skript
hinzufügen Wenn Sie globale Init-Skript nicht gefällt, können Sie es in der Befehlszeile
gradle -I init.gradle run --- f:/temp/x.xml
Oder besser geben Sie einen Alias zu Ihrer Shell hinzu:
gradleapp run --- f:/temp/x.xml
Passten die Antworten zu Ihren Bedürfnissen? Wenn ja, solltest du eins als Lösung markieren. –
Nicht wirklich ... ein Freund und ich einen Weg, es zu tun, aber wir haben es noch nicht klar, um eine Lösung zu veröffentlichen, beide vorgeschlagenen Lösungen wurden ausprobiert, wir verstanden, was es getan werden würde, aber didn Es scheint wirklich zu funktionieren ... – RecuencoJones
@ 6uitar6reat6od Wie hast du es am Ende gelöst? Auch welche Version von Gradle? – xlm