gpt4 book ai didi

java - 如何从 gradle 构建中的类中访问项目属性?

转载 作者:行者123 更新时间:2023-12-02 13:36:50 24 4
gpt4 key购买 nike

我在 gradle 构建文件中有以下内容,我想做的是在复制文件之前过滤文件的内容,因此我创建了一个自定义过滤器类,每次复制文件时都会调用该过滤器类。现在我尝试从 MyFilter 类访问项目属性,例如我尝试打印 profile 属性,但到目前为止我还没有找到方法,这可以做到吗?

通常,我会在使用 gradlew build -Pprofile=prd 启动构建文件时传递配置文件,但我仍然没有找到从 MyFilter 访问这些属性的方法> 类。

apply plugin: 'java'
tasks.build.finalizedBy('copyFiles')

class MyFilter extends FilterReader {


MyFilter(Reader input) {
super(new StringReader(""))
//tried many things to print the profile property, nothing worked.
}
}
def profile = project.properties['profile'] ?: "dev"
def amqa = project.properties['amqa'] ?: "127.0.0.1"
def amqaEG = project.properties['amqaEG'] ?: "127.0.0.1"

task copyFiles(type: Copy) {
project.properties['amqa']
from ('config')
into ('.')
include('**/*_#' + profile + '*')
rename { filename ->
filename.replace '_#' + profile, ''
}

filter MyFilter

}

最佳答案

您需要扩展BaseParamFilterReader ,然后在 setParameters(final Parameter[]parameters) 方法中获取参数。

Copy 任务具有接受参数的 filter 重载,例如:

过滤器(ReplaceTokens, token :[版本:'2.3.1'])

你可能会写这样的东西

过滤器(MyFilter,配置文件:配置文件)

调查ReplaceTokens可能有帮助

关于java - 如何从 gradle 构建中的类中访问项目属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42946891/

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