XDoclet 說明

XDoclet 說明


XDoclet是一個擴展的Javadoc Doclet引擎。它是一種通用的java工具,可以讓你創建自己的javadoc @tags進而利用XDoclet中的Templet enging基於這些@tags生成源代碼或其他文件(例如xml的deployment descriptors)。XDoclet已經支持一些常見的任務了,例如生成web.xml和ejb-jar.xml等,用戶可以創建其他templets和@tags,以增加對其他技術的支持

更宏偉的目標,是讓你可以在基於組件的開發工程中可以實現“持續集成”(Continuous Integration)。要點是在你編寫每一個組件代碼的同時,指定它們的“原數據”(meta-data),也就是設定每個組件的配布屬性(deployment meta-data)。你不必擔心這些配布屬性會過時,因爲你可以接觸代碼,這些配布屬性和代碼同時被修改。這樣就做到了持續集成,整個過程很自然的就是round-trip了。我們稱之爲“持續再配置”(Continuous Reconfiguation)。 XDoclet很適合成爲Apache-Ant這樣的build過程的一部分。

整個系統是可以擴展的。如果需要,你可以爲你的特定任務寫特別的templet(如支持新的App Server,爲Toplink等定義OR Mapping schema, 甚至將servlet當作組件來使用)。XDoclet已經支持一些預先寫好的Templet和@tags,例如爲EJB關聯的東西提供的,爲自動生成web.xml提供的等等。

XDoclet基於以下幾個部分:

  • Apache Ant Task: 和就是這種任務的例子。在你的build.xml文件中,在編譯代碼的taget之前定義。
  • task的嵌套元素: 這是定義對於源代碼需要執行的子任務的地方。例如 和。每一個子任務都可以單獨配置。
  • Template文件: 子任務可以基於template文件生成輸出。template可以是包含類似於 <?XML:NAMESPACE PREFIX = XDOCLET />的xml元素的文本文件。Template文件類似於JSP文件,類似於JSP tags, 實際的實現位於子任務類中,一個基類定義了一些共通的tag
  • 特別的JavaDoc @tags: 通過使用特別的JavaDoc @tags, 給每個組件定義設定。例如在SimpleServlet.java中定義一個 @web:servlet name="The Simple Servlet",讓 子任務知道SimpleServlet.java包含一個servlet的定義,這樣就可以利用@web:servlet tag中的信息生成相應的web.xml描述。
  • The mege system: 爲了避免過多的tags, XDoclet同時也可以使用一種merge system。例如,爲了避免在EJBean源代碼中寫@jboss:table-name account,可以定義一個 jaws-db-setting-Accoutn.xml文件,這個文件包含實際的XML代碼,可以被子任務合併到最終生成的jaws.xml文件中

實際的例子,可以參見sample code和sample build.xml文件

XDoclet是EJBDoclet的後繼者,而EJBDoclet是由Rickard Oberg -- 世界上最好的程序員之一,開放源代碼的先鋒 -- 發起的項目,在這個項目的開發過程中,逐漸發現不僅僅可以用於EJB,於是開始了一個新的項目,一開始就以一個更寬廣的應用作爲目標。

You can download it from http://sourceforge.net/projects/xdoclet.

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