gpt4 book ai didi

java - 使用 Gradle 和转义字符自动扩展属性

转载 作者:行者123 更新时间:2023-12-01 17:36:08 43 4
gpt4 key购买 nike

我正在 Gradle 中使用属性扩展。一切正常,但对于文件路径。

我正在 Gradle 中使用 processResources 任务

    processResources {
filesMatching ('**/application.properties') {
expand project.properties
}
}

我的 Spring application.properties 中有一个属性,如下所示:

root.location = ${rootDir}

在我的 build.gradle 中,我定义了以下内容:

ext['rootDir'] = rootProject.buildDir.path + File.separator + "tmp"

我在application.properties中得到的结果是

root.location = D:\Projects\myproject\build\tmp

在执行以下操作时,它会在我的 Spring 类中变成 D:Projectsmyprojectbuild\tmp:

@Value("${cpm.repository.root.location}") String rootLocation;

我需要将该属性扩展到:

root.location = D:\\projects\\myproject\\build\\tmp

因为这会导致 D:\projects\myproject\build\tmp

我做错了什么?扩展确实按预期工作,只是扩展时路径中的“\”没有转义。

提前致谢

最佳答案

我认为您应该使用processResources任务来修改您的资源。

我们就是这样使用它的(使用 application.yml 和 Gradle Kotlin DSL):

tasks {
named<ProcessResources>("processResources") {
outputs.upToDateWhen { false }

filesMatching("**/application.yml") {
filter {
it.replace("#project.version#", version as String)
}
filter {
it.replace("#spring.profiles.active#", profiles)
}
}
}
}

当然,#spring.profiles.active# 是您要在文件中替换的字符串。

关于java - 使用 Gradle 和转义字符自动扩展属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61036350/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com