私はこれを1日半ほど苦労してきました。私は、Gradleの中に次のAnt概念を複製しようとしている:GradleのAnt taskdefに相当するものは何ですか?
runexe
が
<macrodef name="runexe" >
...
</macrodef>
として他の場所で宣言され、また、taskdef
または私ができるようにしたいと思いscriptdef
すなわちかもしれない
<target name="test">
...
<runexe name="<filename> params="<params>" />
...
</target>
再利用可能な定義済みのコードブロックを呼び出して、Gradleタスク内から必要なパラメータを渡します。私は多くのことを試しました。 exeを問題なく実行するタスクを作成できます。
task runexe(type: Exec){
commandLine 'cmd', '/c', 'dir', '/B'
}
task test(dependsOn: 'runexe') {
runexe {
commandLine 'cmd', '/c', 'dir', '/N', 'e:\\utilities\\'
}
}
test << {
println "Testing..."
// I want to call runexe here.
...
}
実行するにはdependsOnを使用します。しかし、これで私が必要なときに正確にrunexe
を実行することはできません。私はexecutable
、args
とcommandLine
で徹底的に実験してきました。私はexec
で遊んだことがあり、ここで、そしてネットの周りにいくつかの異なるバリエーションを試しました。私はまた、Gradleサイトから入手可能な無料の書籍を扱っています。私がする必要がどのような
がディレクトリからファイルのリストを読んで、他のいくつかの引数を持つアプリケーションに各ファイルを渡しています。ファイルのリストは、実行時間まではわかりません。つまり、スクリプトがそれらを読み込むまで、リストが変わり、呼び出しを繰り返し行う必要があります。
私の最良のオプションは、現在、私は大丈夫かもしれhereを、見つけたもののように見えるが、それはちょうど良い方法があるはずと思われます。私はタスクが一度呼び出されることを意味し、別のタスク内からタスクを呼び出すことも、パラメータを渡すこともできないことを理解していますが、これに対する正しいアプローチがGradleにあることを知りたいと思っています。私は、これはすべてWeb上で頻繁に聞かれる質問があると私は明確な答えたり、私が仕事をすることができます解決策を見つけるために、まだだとのGradleのデザイナーの一つが親切に私を啓発するのかもしれないことを願っています。
のGradleは、設計により、飛躍的に柔軟です。最後の段落で言及されたリンクで使用されているテクニックは、私にとってうまく見えます。すなわち、すべてがタスクでなければならないわけではない。メソッドを定義するのは問題ありません。 –
ありがとうございます。私は今、私が望むことをするために関数を使用しましたが、私はまだもっとGradle-ishの方法があるかどうかを知ることに興味があります。 – ConfusedAgain