2016-05-28 15 views
0

をスキップさ:は、私は次のコードしている

jar.doLast { 
    def isFailed = jar.state.failure 
    def proc 
    if (isFailed) { 
     proc = ['notify-send', "-u", "critical", "Build ${project.name} failed"].execute() 
    } else { 
     proc = ['notify-send', "Build ${project.name} finish"].execute() 
    } 
    proc.waitForProcessOutput(System.out, System.err); 
} 

私は最初gradle --daemon jarを実行すると、それは通知を送信、私は再びそれを実行すると、jar.doLastが実行されない、私srcが古いsrcと同じであるため、gradle auto skipped jarと思うので、jar.doLastが2番目のケースで実行されるようにするにはどうすればいいですか?

+0

jar {outputs.upToDateWhen {false}} – Aarjav

+1

'jar'タスクが実行されなかった場合、なぜ通知を送信したいのですか? – Nikem

答えて

0

おかげ@Aarjavが、私は次のコードを使用し

jar { 
    outputs.upToDateWhen { false } 
} 

jar.doLast { 
    def isFailed = jar.state.failure 
    def proc 
    if (isFailed) { 
     proc = ['notify-send', "-u", "critical", "Build ${project.name} failed"].execute() 
    } else { 
     proc = ['notify-send', "Build ${project.name} finish"].execute() 
    } 
    proc.waitForProcessOutput(System.out, System.err); 
} 

を、それが実行jarを強制する、とjarタスクが(compileJavaと比較して)あまり無駄にしない、それは時間

を構築影響しません。
関連する問題