Elbette her şeyden önce cevaplar işe yarar, ancak yine de şöyle bir şey kullanmak istiyorum
gradle run path1 path2
peki bu yapılamaz, ama ya yapabilirsek:
gralde run --- path1 path2
Daha zarif olduğunu düşünüyorsanız, bunu yapabilirsiniz, işin püf noktası komut satırını işlemek ve gradle yapmadan önce değiştirmektir, bu init betikleri kullanılarak yapılabilir.
Aşağıdaki başlangıç komut dosyası:
- Komut satırını işleyin ve --- ve '---' ardından gelen diğer tüm argümanları kaldırın
- Gradle.ext 'appArgs' özelliğini ekleyin
Böylece, çalıştırma görevinizde (veya JavaExec, Exec) şunları yapabilirsiniz:
if (project.gradle.hasProperty("appArgs")) {
List<String> appArgs = project.gradle.appArgs;
args appArgs
}
Başlangıç betiği:
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
Sınırlamalar:
- '-' kullanmak zorunda kaldım, '-' değil
- Bazı global init komut dosyası eklemelisiniz
Global init komut dosyasını sevmiyorsanız, komut satırında belirtebilirsiniz.
gradle -I init.gradle run --- f:/temp/x.xml
Veya kabuğunuza bir takma ad ekleyin:
gradleapp run --- f:/temp/x.xml