幾步實現Ant語法校驗

在寫Ant的build.xml腳本時總不如寫web.xml等那樣爽(可以實現自動完成提示),因而速度慢,一不小心還寫錯了。下面分享一下本人實現Ant語法提示的步驟,其實很簡單,不過費了我點時間。

 

1、首先在任意一個目錄創建一個build.xml文件,內容如下:

<?xml version="1.0" encoding="UTF-8"?>
       <project name="antdtd" default="makedtd">
              <target name="makedtd">
                   <antstructure output="ant.dtd" />
              </target>
       </project>

 

2、假如上述build.xml文件在d:/,則進到該目錄,執行ant命令即可。(當然必須先安裝並設置好Ant)

此處會有一個小問題,構建會有異常,因爲缺少一個commons-net包,但ant.dtd文件還是會生成,只是比最終需要的文件小很多,於是下載http://mirror.bjtu.edu.cn/apache//commons/net/binaries/commons-net-1.4.1.zip,將解壓後的commons-net-1.4.1.jar放到ANT_HOME的extlib目錄下,並用如下命令再次構建:ant -lib %ANT_HOME%/extlib。OK,沒有錯誤提示,ant.dtd順利生成,約200KB。

 

3、把該文件拷貝到MyEclipse中並和build.xml文件放在同一個目錄,準備用它來對我的build.xml文件進行提示,但複製過來後發現MyEclipse中報該文件有錯誤。

 

a. the name token is required in the enumerated type list for the "timestampgranularity"  attribute declaration

b. the name token is required in the enumerated type list for the "serverlanguagecodeconfig"  attribute declaration

 

此時,把這兩個提示所在行的代碼都剪切出來註釋掉(以後使用ftp命令時需要留意一下這兩個屬性)。完成後,我的ant.dtd已經沒有錯誤提示了,但是我的build.xml還是提示說我的dtd文件有問題,參照網上的資料,提到target元素有問題,於是搜索ant.dtd文檔,發現有兩次target元素的定義,將其中的一個:

 

<!ELEMENT target EMPTY>

 

註釋掉即可,因爲Ant中的target並不是"No children allowed",到此dtd文件的生成和修改就玩成了。

 

最後,只要在build.xml中加入如下的文檔類型聲明就可以了:

 

<!DOCTYPE project SYSTEM "ant.dtd">

 

當然,你可以把它上傳到你的網盤,然後使用絕對路徑的形式指向該dtd文件,O(∩_∩)O~。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章