spring-boot - 为什么我需要在构建之前手动运行清理?

标签 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命令

最佳答案

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

例如:

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

参见up to date checks

关于spring-boot - 为什么我需要在构建之前手动运行清理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50961738/

相关文章:

java - 集成 FF4j 的 Spring Boot REST 应用程序。如何修复依赖库的mvc映射?

java - Spring加载JSON文件并通过requestMapping返回

java - 如何在android studio 1.1.0中添加库

wpf - 最佳实践 WPF Prism 资源

android - 在资源中创建结构的最佳实践

java - 将 spring 区域设置变量传递给 application.properties

java - Spring 启动。尝试打印非存储实体时没有代理

android - "Couldn' t 在设备上安装应用程序”错误消息

java - 完全搞乱了我的 android studio 应用程序的包设置

android-studio - 如何依赖另一个项目的androidTestCompile?