2015-07-10 72 views
1

this問題仍然存在?我正在嘗試使用input.files作爲JavaExec任務類型,最近使用了gradle 2.5並且沒有任何作用。無論輸入文件設置如何,每次都執行任務。使用inputs.file for JavaExec任務

所以,這裏是我的例子:

build.gradle

apply plugin: 'java' 

task sayHello(type: JavaExec) { 
    inputs.files sourceSets.main.java 
    main = "com.question.HelloGradle" 
    classpath = sourceSets.main.runtimeClasspath 
} 

src/main/java/com/question/HelloGradle.java

package com.question; 

public class HelloGradle { 

    public static void main(String[] args) { 
     System.out.println("Hello, Gradle!"); 
    } 
} 
  1. gradlew建立
  2. gradlew的sayHello
  3. gradlew的sayHello

它將運行第二次,達不到最新

但解決方法僅執行一次

task sayHello(type: JavaExec) { 
    inputs.files sourceSets.main.java 
    outputs.upToDateWhen({ return true }); 
    main = "com.question.HelloGradle" 
    classpath = sourceSets.main.runtimeClasspath 
} 
+1

請提供一個示例runnable腳本。 – Opal

+0

似乎我發現解決方案添加'outputs.upToDateWhen({return true});'到任務 –

+0

這不是一個解決方案,而是一個解決方法。 – Opal

回答

2

這一切都在說明docs。您尚未定義任何輸出。 最新的計算需要輸入和輸出。

相關問題