将inputs.file用于JavaExec任务

时间:2015-07-10 13:45:39

标签: gradle

this问题仍然存在吗?我正在尝试使用input.files JavaExec任务类型与最近的gradle 2.5并且没有任何效果。无论输入文件设置如何,每次都会执行任务。

所以,这是我的例子:

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 build
  2. gradlew sayHello
  3. gradlew sayHello
  4. 它会第二次运行,而不是最新的

    但是通过解决方法,它只执行一次

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

1 个答案:

答案 0 :(得分:1)

所有这些都在docs中描述。您还没有定义任何输出。 最新计算需要输入和输出。