2016-08-25 23 views
0

私はシェルスクリプトを実行するはずのタスクを持っています。 Gradleので、私は次のように定義されています私の仕事を実行していないぼんやり

defaultTasks 'renaming' 
... some other stuff goes here ... 
task renaming(type: Exec) { 
    commandLine 'sh', 'src/main/bin/rename.sh' 
} 

私はSRC /メイン/ binに/
しかし、それはテスト目的のために実行を(取得していないで、私のモジュールの下にシェルスクリプトを持って、シェルがディレクトリを作成しますasfasfと呼ばれる)。これをどうすれば解決できますか?

+0

あなたは/Users/you/AndroidStudioProjects/yourProject/app/src/main/bin/rename.shのようなフルパスで試してみましたか? – HendraWD

+0

プロジェクトは別のマシン上でコンパイルされるので、その場合は完全なパスを取得する方法がわかりません。 –

+0

スクリプトを手動で実行しようとしましたか?多分エラーがあるかもしれません – minas

答えて

0

shに相対パスを指定すると、Execタスクの作業ディレクトリに対して解決されます。 Execタスクの作業ディレクトリを設定するか、commandLineの第2引数としてfile('src/main/bin/rename.sh')を使用してください。

+0

コマンドライン 'sh'を使用すると、ファイル( 'src/main/build/rename.sh')は何もしません。 –

+0

「何もない」とはどういう意味ですか?実行されませんか?それはUP-TO-DATEと言われていますか?それはエラーを生成する?何?そして、実行している正確なコマンドは何ですか? '-i'を追加するか、' -d'を追加しないとエラーを見るのに役立つ情報が追加されますか?もしそうでなければ、あなたの質問に '-i'の出力を加えます。 – Vampire

+0

"Nothing"はコンパイル時には問題ありませんが、スクリプトをまったく実行していないようです。シェルスクリプトはこのコマンドだけを実行します:mkdir -p "asfasf"。ターミナルからスクリプトを実行するとうまくいくので、私はGradleのタスクが間違っていると宣言しているか、正しいパスを見つけられないと思います。 –

関連する問題