如果想檢查java代碼的質(zhì)量,那么使用checkstyle plugin就可以.但是怎么檢查其他文本文件的內(nèi)容呢?可以使用antrun這個插件.
比如,我們的maven工程中維護了數(shù)據(jù)庫歷史上所有的DDL語句,這樣可以在測試數(shù)據(jù)庫和生產(chǎn)數(shù)據(jù)庫利用增量DDL來同步數(shù)據(jù)庫結(jié)構(gòu),保證開發(fā)引矩、測試和生產(chǎn)數(shù)據(jù)庫的schema是一致的.但是從一些可視化客戶端工具中產(chǎn)生的DDL語句,往往先把表drop掉,這種語句在生產(chǎn)環(huán)境上執(zhí)行比較危險.這種情況下可以告訴同事,要求上傳DDL語句時仔細檢查.但是可以更自動一些,需要檢查SQL文件,如果發(fā)現(xiàn)drop table語句,及時發(fā)出警報.
在maven工程中,利用antrun插件,可以實現(xiàn)這個功能
在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"的文件,查找過程中忽略大小寫,忽略空格
3 resourcecount得到上一步中符合條件的文件數(shù)量
4 如果符合條件的文件數(shù)量比0大,則fail本次構(gòu)建