#gradle
#gradle
Вопрос:
Эта команда здесь работает, когда я запускаю ее в командной строке из /home/username/workspaces/meditation-new
:
jar -uf server/build/libs/server-*.jar mobile-client/build/BOOT-INF
Но запуск его с помощью gradle:
doFirst {
exec {
executable = 'jar'
args = [
'uf',
"server/build/libs/server-*.jar",
"mobile-client/build/BOOT-INF"
]
}
}
Сбой из-за
java.io.FileNotFoundException: server/build/libs/server-*.jar (No such file or directory)
Однако запуск gradle с -i
включенным переключателем показывает мне, что команда выполнена правильно:
Starting process 'command 'jar''. Working directory: /home/username/workspaces/meditation-new Command: jar uf server/build/libs/server-*.jar mobile-client/build/BOOT-INF
Successfully started process 'command 'jar''
java.io.FileNotFoundException: server/build/libs/server-*.jar (No such file or directory)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
at jdk.jartool/sun.tools.jar.Main.run(Main.java:360)
at jdk.jartool/sun.tools.jar.Main.main(Main.java:1681)
:copyWebApp (Thread[Execution worker for ':',5,main]) completed. Took 0.079 secs.
В чем здесь проблема?
Ответ №1:
В Unix-подобных системах подстановочный *
знак расширяется оболочкой, а не запускаемой программой. Либо разверните подстановочный знак самостоятельно, либо выполните команду через оболочку.
Комментарии:
1. Теперь это работает (и я знаю, что я все еще делаю это неправильно). ^^