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

Gradle:用项目属性替换令牌

赵征
2023-03-14

我有一些令牌的资源文件,需要使用java插件任务“进程资源”替换为文件路径。gradle是否提供了一种方式,其中令牌值是一个表达式?

1) src/resources/config。属性文件有一个标记:SRC\u ROOT\u DIR=@SRC\u ROOT\u DIR@

2) 构建。gradle文件包含以下内容:

processResources{
   filter ReplaceTokens, tokens:[SRC_ROOT_DIR: project.projectDir]
}

这引发一个异常,说明:无法复制文件“。。src\resources\config。属性“到”。。生成\资源\主\配置。属性'

共有1个答案

况明贤
2023-03-14

运行您的片段--stacktraces给了我:

...

Caused by: org.gradle.api.GradleException: Could not copy file 
'C:\bss\zz\src\main\resources\config.properties' 
to 'C:\bss\zz\build\resources\main\config.properties'.

...

Caused by: java.lang.ClassCastException: 
java.io.File cannot be cast to java.lang.String
...

正在更改项目。项目目录到项目。项目目录。解决该问题的名称(或路径):

过滤器替换令牌,令牌:[SRC_ROOT_DIR:project.projectDir.path]

 类似资料:
  • Project 对象提供了一些标准的属性,您可以在构建脚本中很方便的使用他们. 下面列出了常用的属性: Name Type Default Value project Project Project 实例对象 name String 项目目录的名称 path String 项目的绝对路径 description String 项目描述 projectDir File 包含构建脚本的目录 build

  • 我只是想知道有没有什么方法可以为log4j中的属性替换提供默认值呢? 我想在Java系统属性中传递文件路径,然后与“${env:MySystemProperty}”一起使用。但如果开发人员忘记设置此属性怎么办?那么我希望在log4j2.xml中定义一些有意义的默认值。 你知道如何实现这个功能吗? 编辑: 环境替换对我不起作用: standalone.conf log4j2.xml 我可以在wild

  • 我需要使用属性名称替换xml文件中的属性值。 前任: 我有一个替换此值的目标。i、 e“默认值”。如果用户为属性测试名称指定了错误的值,则可以多次运行此目标。用户可以使用正确的值重试运行目标。因此,我不能使用正则表达式替换。我只能依靠物业名称。有没有一种方法可以在ant中使用属性值的名称来替换属性值?

  • 为了提出这个问题,我有一个简单的子项目定义为: 我真的希望能够在一个单独的子项目中引用完整的输出jar名称。 比如: 我可以在这里的文档中看到JAR任务具有archiveName属性:https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html#org.gradle.api.tasks.bundling.Jar

  • 在为Logback appender指定实现类时,是否可以使用变量替换?例如, 如上所述指定时,Logback似乎试图加载名称为“${LOGFILE_APPENDER_CLASS}”的类。也就是说,不执行变量替换! 我想将输出发送到eclipse开发人员的生产和控制台中的文件。如果可能的话,我不想重复appender配置,因为它包含了一长串过滤器,在大多数情况下都是相同的。

  • 行动时刻 - 使用命令替换 到目前为止,我们使用双引号来包含将被引用的变量。 Unlang还具有反引号字符串,允许命令替换。这些反引号内的字符串的计算方式类似于可以进行字符串扩展的双引号字符串。 让我们修改上一个练习,以显示操作中的命令替换: 1.编辑FreeRADIUS配置目录下的sites-available / default虚拟服务器,并在该部分顶部的post-auth部分中添加以下内容: