为什么我需要在构建之前手动运行干净?

时间:2018-06-21 06:26:57

标签: spring-boot gradle resources gradle-task

这是我的配置

application.yml

spring:
    profiles.active: ${env}

build.gradle

processResources {
    expand(project.properties)
}

如果我运行此程序一切正常

gradle clean build -Penv=a
gradle clean build -Penv=b

但是如果我运行此命令,“ env”属性将保留在第一个配置中

gradle build -Penv=a
gradle build -Penv=b

奇怪的是,如果我放clean { println "CLEAN" },我发现每次使用所有4条命令都调用clean命令

1 个答案:

答案 0 :(得分:1)

Gradle使用每个任务的输入和输出来执行最新检查。如果自上次运行以来输入和输出未更改,则可以跳过它。您需要将“ env”添加为任务输入,以便在最新检查中予以考虑。

例如:

processResources {
    inputs.properties(project.properties)
    expand(project.properties)
}

请参见up to date checks