首页 > 解决方案 > 为什么我需要在构建之前手动运行 clean?

问题描述

这是我的配置

应用程序.yml

spring:
    profiles.active: ${env}

构建.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

标签: spring-bootgradleresourcesgradle-task

解决方案


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

例如:

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

查看最新检查


推荐阅读