2016-04-08 37 views
2

私はgmakeのユーザーがGradleに移行しています。私は複数のプロジェクト構造を持っています.1つのサブプロジェクトはJavaプロジェクトであり、もう1つは自家製の言語です。自家製の言語は、Gradleプラグインを使用していません。今では自家製ソースファイルのいずれかが変更されたときにXMLを生成するJavaプログラムを実行するタスクを追加したいと思います。 makeでは、ターゲット名の隣にあるinputFile.mineまたは* .mineに依存関係を宣言するだけですが、この基本的なことをGradleで簡単に行う方法は見つけられませんでした。現在、以下のような潜在的な厄介な回避策を使用して、タスクを常に実行するようにしています。私はこれをいくつかのdependsOn * .mineに置き換えたいと思います。 Gradleのユーザーガイドには、ファイルを指定するさまざまな方法を説明する章がありますが、依存関係を宣言する方法は見当たりませんでした。ファイルの依存関係Gradle

task generateXML(type: Exec) { 
generateXML.getOutputs().upToDateWhen({false}) // Force it to execute always 
executable("java.exe") 
args("-jar", "resources/generateXml.jar", "src/inputFile.mine") 
} 

初心者を助けてくれてありがとう。

答えて

0

タスク入力と出力をGradleで定義することができます。例えば

task generateXML(type: Exec) { 
    inputs.file ("src/inputFile.mine") 
    executable("java.exe") 
    args("-jar", "resources/generateXml.jar", "src/inputFile.mine") 
} 

詳細についてはhttps://docs.gradle.org/current/userguide/more_about_tasks.htmlhttps://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskInputs.htmlを参照してください。

サイドノート:-iでビルドを実行すると、Gradleは最新のチェック中に何が起こったかを教えてくれます。

+0

ありがとうございました!これらの参考文献と例はまさに私が必要としていたものです。特に17.9節。 「最新のタスクをスキップする」は、問題を解決します。 –

関連する問題