錙銖必較:用antrun maven插件檢查文本文件

如果想檢查java代碼的質(zhì)量,那么使用checkstyle plugin就可以.但是怎么檢查其他文本文件的內(nèi)容呢?可以使用antrun這個(gè)插件.
比如,我們的maven工程中維護(hù)了數(shù)據(jù)庫(kù)歷史上所有的DDL語(yǔ)句,這樣可以在測(cè)試數(shù)據(jù)庫(kù)和生產(chǎn)數(shù)據(jù)庫(kù)利用增量DDL來(lái)同步數(shù)據(jù)庫(kù)結(jié)構(gòu),保證開(kāi)發(fā)、測(cè)試和生產(chǎn)數(shù)據(jù)庫(kù)的schema是一致的.但是從一些可視化客戶端工具中產(chǎn)生的DDL語(yǔ)句,往往先把表drop掉,這種語(yǔ)句在生產(chǎn)環(huán)境上執(zhí)行比較危險(xiǎn).這種情況下可以告訴同事,要求上傳DDL語(yǔ)句時(shí)仔細(xì)檢查.但是可以更自動(dòng)一些,需要檢查SQL文件,如果發(fā)現(xiàn)drop table語(yǔ)句,及時(shí)發(fā)出警報(bào).

在maven工程中,利用antrun插件,可以實(shí)現(xiàn)這個(gè)功能
在build中加入如下plugin

            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <phase>verify</phase>
                    </execution>
                </executions>
                <configuration>
                    <target>
                        <fail message="found drop statement">
                            <condition>
                                <resourcecount count="0" when="gt">
                                    <fileset dir="scheme">
                                        <contains text="DROP TABLE" ignorewhitespace="yes"
                                            casesensitive="no" />
                                    </fileset>
                                </resourcecount>
                            </condition>
                        </fail>
                    </target>
                </configuration>
            </plugin>

執(zhí)行的步驟
1 fileset指定schema文件夾下的DDL sql文件
2 contains查找包含了"DROP TABLE"的文件,查找過(guò)程中忽略大小寫(xiě),忽略空格
3 resourcecount得到上一步中符合條件的文件數(shù)量
4 如果符合條件的文件數(shù)量比0大,則fail本次構(gòu)建

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • git 使用筆記 git原理: 文件(blob)對(duì)象,樹(shù)(tree)對(duì)象,提交(commit)對(duì)象 tree對(duì)象 ...
    神刀閱讀 3,848評(píng)論 0 10
  • 1. GIT命令 git init在本地新建一個(gè)repo,進(jìn)入一個(gè)項(xiàng)目目錄,執(zhí)行g(shù)it init,會(huì)初始化一個(gè)re...
    江邊一蓑煙閱讀 888評(píng)論 0 0
  • 查看、添加、提交、刪除、找回,重置修改文件 git help # 顯示command的help git sho...
    Swiftor閱讀 2,208評(píng)論 0 2
  • 1.git的簡(jiǎn)單使用流程 git分為工作區(qū)(working directory)、暫存區(qū)(index或者stage...
    轟炸機(jī)上調(diào)雞尾酒閱讀 1,771評(píng)論 0 1
  • 一、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看當(dāng)前狀態(tài) git c...
    走在路上的日子閱讀 1,966評(píng)論 0 22

友情鏈接更多精彩內(nèi)容