分类: Java
2006-11-18 19:12:32
XDoclet最早用来对付EJB,因为生成EJB的本地和远程接口以及对应的HOME和描述符是一件简单但是枯燥的事,本来我以为,只有JBuilder这样的集成编辑器可以很好的简化工作,后来知道XDoclet也能够完成得不错。
我最早用XDoclet是因为学习hibernate,hibetnate的描述文件并不复杂,关键的部分不多,可是一旦对POJO修改,就必须要劳师动众的找到对应的描述符来修改,增加了一次出错的机会,而使用了XDoclet就可以做到同步的修改。
还有就是struts,首先是配置文件,许多人操作同一个文件会产生冲突,有了XDoclet我们就不怕了,还有validate文件也一样,有了XDoclet就会解决大部分冲突问题。
之所以起这么一个名字,主要因为XDoclet和Ant结合得很紧,尽管实际上做的工作并没有直接的联系,但XDoclet除了Ant接口就只有些Maven接口插件了,所以XDoclet几乎是完全依赖Ant的。
本篇文章的目录结构如下,因为只是为了说明问题,在我的ant的build文件中并没有包括路径名的引用,一切是直接的方式。
├─classes
├─doc
├─gen
├─lib
│commons-collections-2.1.jar
│commons-logging-
│commons-validator.jar
│log4j-
│servlet.jar
│struts.jar
│xdoclet-
│xdoclet-apache-module-
│xdoclet-ejb-module-
│xdoclet-hibernate-module-
│xdoclet-web-module-
│xdoclet-xdoclet-module-
│xjavadoc-
├─merge
├─src
├─todo
└─web
只列出lib中的文件,每一个的作用在后面慢慢描述。
build.xml
开头增加
**************************************************************************************************
1,最简单的todolist
每一篇讲XDoclet都送这里开始,有很多原因的。XDoclet的灵感来自JavaDoc,JavaDoc把文档写在代码里,缓解了困扰编程领域多年的文档与程序同步问题。这里有个很有趣的事,就是UNIX业界的人们传递下来这样一个传统,就是代码是最好的文档,保持文档的同步实在是费力不讨好的事,所以他们提出这样一个好主意,不过JavaDoc更聪明,文档是程序注释的一部分,而且可以提取出来。
来吧,看这个任务。
然后src写这么一个文件
package xdoclet;
public class TodoListTest {
/**
* @todo 我有许多工作要做,只是测试,忽略吧
*/
public TodoListTest() {
}
/**
* @todo 我还不知道名字,只是测试,忽略吧
*
*/
public String getYourName(){
return null;
}
}
注意要按照javadoc的写法。还要注意ant中的子任务系统,其中info就是我们定义的documentdoclet任务的子任务,我们以后会看到很多类似的情况.
然后运行ant todolist
结果就是一个结构类似javadoc,但是只包括todo标签的html文档,呵呵,可以看看项目里有哪些待办的事。