【问题标题】:Groovy MarkUpBuilder with local files带有本地文件的 Groovy MarkUpBuilder
【发布时间】:2017-09-06 10:01:49
【问题描述】:

我对 XML 有点坚持。 XML 中sqlfile 中的路径必须取自使用dirdir1 加载SQLfiles 的文件夹我在构建这样的XML 时遇到问题:

<databaseChangeLog

<changeSet author="John" id="JRIA" failOnError="true" runAlways="false">
    <sqlFile path="path.sql" relativeToChangelogFile="true" encoding="utf8" />
    <rollback>
        <sqlFile path="rollback/path.sql" relativeToChangelogFile="true" encoding="utf8" />
    </rollback>
</changeSet>

我的例子:

import groovy.io.FileType
import groovy.xml.*


def dir = new File("C:\\Users\\John\\git\\changelogs\\version1\\db")
def dir1 = new File("C:\\Users\\John\\git\\changelogs\\version1\\rollback")

def sw = new StringWriter()
def xml = new groovy.xml.MarkupBuilder(sw)
xml.changeSet(author:"John", ID:"JIRA", failOnError: "True", runAlways: "false"){
    sqlFile(path:"From DIR", relativeToChangelogFile="true")
    rollback(){
        sqlFile(path:"From DIR1", relativeToChangelogFile="true")}
}

如何使用dirdir1 生成XML?以及如何获取特定的扩展文件(sql)

【问题讨论】:

    标签: xml groovy markupbuilder


    【解决方案1】:

    很简单,只要使用.each

    xml.dataBaseChangeLog(){
    dir.eachFileRecurse(FileType.FILES) { file ->   
        changeSet(author:"John", ID:"JIRA", failOnError: "True", runAlways: "false")
        sqlFile(path:file, relativeToChangelogFile="true")    
        rollback(){       
            sqlFile(path:file, relativeToChangelogFile="true")
    }}}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-22
      • 1970-01-01
      相关资源
      最近更新 更多