【发布时间】:2016-10-13 14:39:37
【问题描述】:
我们有一个自定义插件,我们想在其中构建一个用于部署的特殊 tar 文件。我们想去除某些依赖项的版本号。
插件代码:
void addTarTask(Project project) {
Tar tar = project.tasks.create("tar", Tar)
tar.classifier = "bin"
project.afterEvaluate {
tar.into("${project.name}-${project.version}"){
into('lib'){
from project.tasks.jar
from project.configurations.runtime
}
//snip more custom requirements
}
}
}
我尝试过使用正则表达式从文件中删除版本的方法 - 像这样:
into('lib'){
from project.tasks.jar
from project.configurations.runtime {
rename '(.*)-[0-9]+\\..*.jar', '$1.jar' // not sure regex is okay - it is just to demo
}
}
是否无法获取类型依赖项/工件对象,以便我可以跳过正则表达式并使代码更干净。类似(伪代码):
if(${artifact.extension} == "so") {
return ${artifact.name}.${artifact.extension}
} else {
// just return normal file
}
任何帮助表示赞赏:-)
【问题讨论】:
标签: gradle groovy build.gradle