Exécuter le script shell dans Gradle
J'ai un build gradle de l'installation au début de laquelle je veux exécuter un shell script dans un sous-répertoire qui prépare mon environnement.
task build << {
}
task preBuild << {
println 'do prebuild stuff:'
}
task myPrebuildTask(type: Exec) {
workingDir "$projectDir/mySubDir"
commandLine './myScript.sh'
}
build.dependsOn preBuild
preBuild.dependsOn myPrebuildTask
Cependant, lorsque j'exécute la tâche, soit en appelant le gradle myPrebuildTask
ou tout simplement la construction du projet, l'erreur suivante se produit:
> A problem occurred starting process 'command './myScript.sh''
Malheureusement, c'est tout ce que je reçois.
J'ai aussi essayé la suite de la même erreur.
commandLine 'sh mySubDir/myScript.sh'
- Je utiliser Gradle 1.10 (nécessaire par Android) sur Windows, à l'intérieur d'un shell Cygwin. Des idées?
Vous devez vous connecter pour publier un commentaire.
utilisation
votre script en lui-même n'est pas un programme, c'est pourquoi vous devez déclarer " sh " comme le programme et le chemin d'accès à votre script comme un argument.
Plus générique façon d'écrire l'exec de la tâche, mais portable pour Windows/Linux, si vous exécutez un fichier de commande sur le CHEMIN:
Ce n'est pas de traiter directement le cas d'utilisation de l'OP (puisqu'il en est fichier de script dans le répertoire de travail), mais le titre de la question est plus générique (et qui m'a attiré ici), de sorte qu'il pourrait aider quelqu'un, peut-être.
malheureusement options avec ligne de commande pas fonctionné pour moi et mon ami trouver d'autres façon avec exécutable
et toute la tâche serait
Cela fonctionne pour moi, dans mon projet Android
Voir ici pour plus d'explications:
Comment rendre le Système de commande des appels en Java/Groovy?
J'ai copié ma coquille scipt pour
/usr/local/bin
avec+x
l'autorisation et l'a utilisé comme une autre commande: