mam Gradle zadanie, które powinno stworzyć profil WebSphere w systemie operacyjnym WindowsGradle: Wykonanie zadania „typ: Exec” z wielu argumentów ze spacjami
task createProfile(type:Exec) {
def commandToExecute = new StringBuffer()
def profile = 'AppSrv02'
def wasHome = 'C:/IBM new/WebSphere/AppServer'
def str = new LinkedList <String>();
str.add('cmd')
str.add('/c')
str.add(wasHome + '/bin/manageprofiles.bat')
str.add('-create')
str.add('-profileName')
str.add(profile)
//str.add('-templatePath')
//str.add(wasHome + '/profileTemplates/default')
println (str)
commandLine str.toArray()
}
a problem pojawia się, gdy ja odkomentowaniu komentowane linii, po nim zadań nie powiedzie się i powie: "C:/IBM" nie jest prawidłowym plikiem wsadowym. Jeśli umieściłem profileTemplates nie w folderze zawierającym spacje, wszystko działa poprawnie. Ale szablony powinny kłamać int byłoHome (I czasami byłoHome ma spacje (
Mam, teraz pomysły, dlaczego dodawanie klucz do szablonów z wartością ze spacjami wpływa w taki sposób, że Gradle próbuje uruchomić "C:/IBM" zamiast tego określiło "C:/IBM/WebSphere/AppServer/bin/manageprofiles.bat 'Wydaje się, że prawdopodobnie problem występuje wewnątrz java.lang.ProcessBuilder.
Próbuję cytować ścieżki, dodając "/""
, ale nic nie działa (((co nie jest zaskoczeniem, ponieważ ProcessBuilder implikuje sam cytowanie, jeśli jest to potrzebne:
Pytam więc, czy ktoś miał podobny problem i mógł zalecić, jak obejść ten problem? Z góry dziękuję.
To rozwiązanie nie działa dla mnie.Miałem argument taki jak" --autoprefix = " ostatnie 2 wersje "', a przestrzenie pomiędzy podwójnymi cytatami zawsze wyrzucały rzeczy. –