当前位置: 首页 > 知识库问答 >
问题:

使用带转义字符的Gradle自动扩展属性

龙哲
2023-03-14

我在Gradle使用房地产扩张。除了文件路径之外,所有这些都可以正常工作。

我正在Gradle中使用processResources任务

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

我的Spring应用程序中有一个属性。属性如下:

root.location = ${rootDir}

在mybuild中。gradle我定义了以下内容:

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

结果我进入了应用程序。属性

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

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

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

我需要将物业扩展到:

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

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

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

提前谢谢

共有1个答案

单于庆
2023-03-14

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

我们正以这种方式使用它(与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。配置文件。active#是要在文件中替换的字符串。

 类似资料:
  • 我目前正在使用gradle作为构建工具构建Kotlin、Spring Boot服务。我正在尝试自动扩展应用程序中的属性。属性文件,使用以下步骤: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html#howto-自动膨胀梯度 我的版本如下: 当我运

  • 问题内容: 我知道可以在Java字符串中用双引号将符号放在双引号之前。但是,如果在字符串中经常使用双引号,那么是否有一种方法可以将字符串标记一次,因此不需要在每个双引号之前写上符号吗?(就像在C#中一样,可以将符号放在字符串之前)示例: 代替 问题答案: 你不能 但是,如果您懒得不能使用双引号,则可以使用一些技巧。例如: 输出:

  • 注意:TPR已经停止维护,kubernetes 1.7及以上版本请使用CRD。 自定义资源是对Kubernetes API的扩展,kubernetes中的每个资源都是一个API对象的集合,例如我们在YAML文件里定义的那些spec都是对kubernetes中的资源对象的定义,所有的自定义资源可以跟kubernetes中内建的资源一样使用kubectl操作。 自定义资源 Kubernetes1.6版

  • ES6加强了对Unicode的支持,并且扩展了字符串对象。 字符的Unicode表示法 JavaScript允许采用\uxxxx形式表示一个字符,其中“xxxx”表示字符的码点。 "\u0061" // "a" 但是,这种表示法只限于\u0000——\uFFFF之间的字符。超出这个范围的字符,必须用两个双字节的形式表达。 "\uD842\uDFB7" // "

  • 小结:我正在尝试访问Java中的项目属性(例如版本),我读到的所有地方都说我需要在构建中扩展属性。gradle文件。这很好,但我正在使用LDAP,并在属性文件中配置它。每当我尝试扩展属性时,都会出现LDAP错误49 52e(无效凭据),因此Gradle处理属性的任何操作都会扭曲LDAP属性,使其不再可用。 项目信息:我在下面概述了我认为适用的项目信息。如果需要进一步的细节来确定问题,请发表评论,我

  • 用户自定义扩展是用户自己创建的 JavaScript 文件,对 Selenium IDE 现有的功能进行定制以及功能扩展。通常这种定制和扩展是以自定义命令的形式来体现的,当然也不仅限于命令。 这里可以找到很多有用的扩展。 注意:这部分信息已经过时,我们将很快修改。 也许最受欢迎的 Selenium IDE 扩展就是流程控制,流程控制扩展将提供 while 循环和条件判断。这个扩展是 goto_se