如何从ant构建文件读取属性到gradle构建脚本



我正在寻找从ant的build.xml文件中提取属性的可能干净简洁的方法。

我知道我可以使用ant.importBuild 'build.xml',但这将导入所有目标,可能导致名称冲突,例如与java插件,这是一个已知的问题。

一种方法是手动解析XML文件,例如使用Groovy的XmlSlurper类。但是,这不会替换属性值中出现的任何属性引用。另一种方法是配置一个org.apache.tools.ant.Project对象(类似于ant.importBuild的做法),并从那里获取属性值。比如:

import org.apache.tools.ant.Project
import org.apache.tools.ant.ProjectHelper
task printPropertyValue {
    doLast {
        def antProject = new Project()
        ProjectHelper.configureProject(antProject, file("build.xml"))
        def value = antProject.getProperty("some.property")
        while (value.contains('${')) {
            value = antProject.replaceProperties(value)
        }
        println value
    }
}

可能有更好的方法递归地替换属性引用,但我找不到。

另一个可能的解决方案是使用Ant和Gradle都能读取的外部属性文件

相关内容

  • 没有找到相关文章

最新更新