2017-09-06 1 views
0

약간의 XML이 붙어 있습니다.로컬 파일이있는 Groovy MarkUpBuilder

<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")} 
} 

dir를 사용하는 방법과 XML의 sqlfile의 경로 내가 그런 식으로 XML을 구축하는 문제가 dirdir1를 사용하여로드 SQLfiles있는 폴더에서주의해야 dir1 XML을 생성하는 좋은 방법은 무엇입니까? 어떻게 특정 확장자 파일 (SQL)

답변

0

이 상당히 간단합니다, 그냥 사용할 수 .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") 
}}}