`
bluemusic
  • 浏览: 48846 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

和xdoclet 说 Hello

阅读更多

偶尔也在这里发表一篇日志.关于xdoclet。

由于工作也很忙,所以可能写得比较匆忙,望观者见谅。

废话不多说直接开始。

1。运行环境:

eclipse ganymede版

Version: 3.4.0
Build id: I20080617-2000

 

java6.0

 

ant 1.6.5

http://archive.apache.org/dist/ant/binaries/apache-ant-1.6.5-bin.zip

xdoclet1.2.3

http://mirror.optus.net/sourceforge/

去这个镜像里找吧

 

介绍到这里接着说配置

 

2。工具的配置

ant的配置到处都是不说了。

接下去要装的插件是doclipse版本是0.7.0

去这里找

http://beust.com/doclipse/

 

得到的包名叫com.beust.doclipse.zip

直接解要到eclipse下的plugins里然后启动eclipse

 

通过菜单window->preferences中可以找到Doclipse已经安装好啦,如下图:

 

 

 

接下去点Doclipse下的External files发现个有Directory让你选。

这里就要说到doclipse的功能了。它就是让标签能通过快捷方式显示出来,通常是alt+"/"

而这里的directory是指模板的路径。可能说的不够准确。但的确是通过它再起作用的。。。哎~又废话了。。

 

这个模板是从http://mirror.optus.net/sourceforge/ 里找的。应该在xdoclet下。文件名为xdoclet-doclipse-1.2.3.zip。

 

然后解压出来后的这个目录就是前面所说到的directory了,browse以后选那个文件夹就可以了。结果如下图:

 

选中所有的xml然后apply最后ok

 

初步的设置就完成了。

 

3。开始写build.xml和其他的一些代码

 

下面是我练习的build.xml代码

Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <project>  
  3.     <!-- set properties -->  
  4.     <property name="src.dir" value="src"></property>  
  5.     <property name="lib.dir" value="lib"></property>  
  6.     <property name="build.dir" value="build"></property>  
  7.     <property name="dist.dir" value="dist"></property>  
  8.     <property name="project_name" value="xdoclet"></property>  
  9.     <property file="hibernate.properties"></property>  
  10.   
  11.     <path id="lib.classpath">  
  12.         <fileset dir="${lib.dir}">  
  13.             <include name="**/*.jar"/>  
  14.         </fileset>  
  15.     </path>  
  16.        
  17.     <path id="src.classpath">  
  18.         <pathelement location="${src.dir}"/>  
  19.     </path>  
  20.        
  21.     <path id="runtime.classpath">  
  22.         <path refid="lib.classpath"></path>  
  23.         <path refid="src.classpath"></path>  
  24.     </path>  
  25.   
  26.     <!-- =================================    
  27.           target: make base diectories, such as lib ,build , dist..                 
  28.          ================================= -->  
  29.     <target name="mk_base_dir">  
  30.         <mkdir dir="${build.dir}"/>  
  31.         <mkdir dir="${dist.dir}"/>  
  32.     </target>  
  33.        
  34.     <!-- =================================    
  35.           target: compile java to classes, classes directory is build/classes                 
  36.          ================================= -->  
  37.   
  38.     <target name="compile" depends="mk_base_dir">  
  39.         <mkdir dir="${build.dir}/classes"/>  
  40.         <javac srcdir="${src.dir}" destdir="${build.dir}/classes">  
  41.             <classpath refid="runtime.classpath"></classpath>  
  42.         </javac>  
  43.     </target>  
  44.        
  45.     <!-- =================================    
  46.           target: export jar into build directory and jar is named according to the project              
  47.          ================================= -->  
  48.     <target name="export_jar" depends="mk_base_dir" description="exportClassesIntoJar">  
  49.         <jar destfile="${build.dir}/${project_name}.jar"></jar>  
  50.     </target>  
  51.   
  52.     <!-- =================================    
  53.           target: clean Xmls under src directory                
  54.          ================================= -->  
  55.     <target name="cleanXml">  
  56.         <delete>  
  57.             <fileset dir="${src.dir}" includes="**/*.xml" />  
  58.         </delete>  
  59.     </target>  
  60.        
  61.     <!-- =================================    
  62.           target: genate-hiberate3.x               
  63.          ================================= -->  
  64.     <target name="gen-hib">  
  65.         <taskdef  
  66.             name="hibernatedoclet"  
  67.             classname="xdoclet.modules.hibernate.HibernateDocletTask"  
  68.             classpathref="runtime.classpath"  
  69.             >  
  70.         </taskdef>  
  71.         <hibernatedoclet  
  72.             destdir="${src.dir}"  
  73.             verbose="true"  
  74.             >  
  75.             <fileset dir="${src.dir}">  
  76.                 <include name="**/*.java"/>  
  77.             </fileset>  
  78.             <hibernate version="3.0"/>  
  79.             <hibernatecfg  
  80.                 dialect="${hibernate.dialect}"  
  81.                 jdbcUrl="${hibernate.connection.url}"  
  82.                 driver="${hibernate.connection.driver_class}"  
  83.                 username="${hibernate.connection.username}"  
  84.                 password="${hibernate.connection.password}"  
  85.                 showSql="false"  
  86.                 version="3.0"  
  87.             />  
  88.         </hibernatedoclet>  
  89.     </target>  
  90.        
  91.     <!-- =================================    
  92.           target: generate-struts1.2              
  93.          ================================= -->  
  94.     <target name="web xdoclet">  
  95.         <taskdef  
  96.             name="webdoclet"  
  97.             classname="xdoclet.modules.web.WebDocletTask"  
  98.             classpathref="runtime.classpath"  
  99.             />  
  100.         <webdoclet  
  101.             mergedir="${build.dir}/merge"  
  102.             destdir="${build.dir}/classes"  
  103.             verbose="false"  
  104.             >  
  105.                 <fileset dir="${src.dir}">  
  106.                     <include name="**/*.java"/>  
  107.                 </fileset>  
  108.                 <strutsconfigxml version="1.2" />  
  109.         </webdoclet>  
  110.     </target>  
  111.   
  112. </project>  

 

 

 

还有个hibernate.properties的文件不得不提

Java代码 复制代码
  1. hibernate.dialect=org.hibernate.dialect.MySQLDialect   
  2. hibernate.connection.url=jdbc:mysql://localhost:3306/test   
  3. hibernate.connection.driver_class=com.mysql.jdbc.Driver   
  4. hibernate.connection.username=root   
  5. hibernate.connection.password=root   

 

 

3个基础文件

Car.java用来生成hibernate.cfg.xml和Car.hbm.xml

LoginAction.java和LoginForm.java用来生成struts-config.xml

当然这3个文件还会产生classes文件

 

Car.java

Java代码 复制代码
  1. import java.io.Serializable;   
  2.   
  3. /**  
  4.  * @hibernate.class table="car"  
  5.  * @author Charles King  
  6.  *  
  7.  */  
  8. public class Car implements Serializable{   
  9.   
  10.     private Integer carId;   
  11.        
  12.     private String carName;   
  13.   
  14.     /**  
  15.      * @hibernate.id generator-class = "native" column="carid"  
  16.      * @return  
  17.      */  
  18.     public Integer getCarId() {   
  19.         return carId;   
  20.     }   
  21.   
  22.     public void setCarId(Integer carId) {   
  23.         this.carId = carId;   
  24.     }   
  25.   
  26.     /**  
  27.      * @hibernate.property column="carname"  
  28.      * @return  
  29.      */  
  30.     public String getCarName() {   
  31.         return carName;   
  32.     }   
  33.   
  34.     public void setCarName(String carName) {   
  35.         this.carName = carName;   
  36.     }   
  37.        
  38.        
  39.        
  40. }  

 

 

LoginForm.java

Java代码 复制代码
  1. import org.apache.struts.action.ActionForm;   
  2.   
  3. /**  
  4.  * @struts.form  
  5.  *   name = "loginForm"  
  6.  * @author Charles King  
  7.  *  
  8.  */  
  9. public class LoginForm extends ActionForm {   
  10.   
  11. }  

 

 

LoginAction.java

Java代码 复制代码
  1. import org.apache.struts.action.Action;   
  2.   
  3. /**  
  4.  * @struts.action  
  5.  *   input = "/login.jsp"  
  6.  *   scope = "request"  
  7.  *   name = "loginForm"  
  8.  *   validate = "false"  
  9.  *   path = "/login.do"  
  10.  * @author Charles King  
  11.  *  
  12.  */  
  13. public class LoginAction extends Action {   
  14.   
  15. }  

 

 

 

4。运行

 

在运行gen-hib和web xdoclet前先在lib下加入这些包,如图:

 

struts.jar是1.2.9版本里的那个。servlet-api都知道是哪个的。其他几个都在xdoclet里找。不过我很奇怪没有xdoclet-ejb-module-1.2.3.jar,web xdoclet运行时就会有问题。

 

5。文件目录

在不运行cleanXml情况下的目录结构。

在eclipse环境下:

 

 

以上就是最简单的xdoclet应用了。

分享到:
评论
1 楼 yhc0125 2009-06-07  
多谢分享,喜欢用xDoclet产生hibernate mapping文件

相关推荐

    XDoclet入门教程

    1. **元数据支持**:XDoclet允许开发者通过使用自定义的JavaDoc标记来添加元数据到类、方法和字段上,这些元数据可以用来生成各种配置文件或代码。 2. **代码生成**:基于上述元数据,XDoclet能够自动生成各种类型的...

    使用xDoclet自动生成Spring的bean的配置文件

    为了解决这一问题,开发者可以利用xDoclet工具来自动生成Spring的bean配置文件,从而提高开发效率和代码的可维护性。 xDoclet是一个开源的Java文档注解处理器,它能够读取Java源代码中的特定注解,并根据这些注解...

    Eclipse xDoclet 开发EJB2.1

    【Eclipse xDoclet 开发EJB2.1】是一个关于使用Eclipse集成开发环境(IDE)配合xDoclet工具来开发Enterprise JavaBeans (EJB) 2.1版本的教程。EJB是一种Java技术,用于构建可部署在Java应用服务器上的组件,主要用于...

    ant,xdocle

    在Ant和XDoclet的上下文中,这可能意味着你将学习如何使用Ant来编译和运行一个简单的"Hello world"程序,并可能使用XDoclet从这个程序中生成相应的文档或辅助代码。 总结一下,Ant和XDoclet是Java开发中不可或缺的...

    Weblogic webserice 学习总结

    在本文中,我们将深入探讨WebLogic Web服务的学习总结,这是基于WebLogic 8.1、Xdoclet、Ant和JDK 1.4的实践项目。对于初学者来说,理解并掌握WebLogic中的Web服务发布至关重要,因为它为构建分布式应用程序提供了...

    Eclipse开发EJB文档

    生成的`helloHome`接口和`hello`远程接口代码可能如下: ```java // helloHome.java package com.first.ejb; import javax.ejb.CreateException; import javax.ejb.EJBHome; public interface helloHome extends ...

    corejava 面试题

    然而,这些早期的元数据解决方案各有局限,如关键字和标记接口的扩展性不足,Javadoc和XDoclet不受编译器检查等。 Annotation与XML配置文件相比,具有以下优缺点: - Annotation与代码紧密集成,便于维护,且在...

    图解eclipse+myelcipse开发EJB

    总的来说,Eclipse和MyEclipse为EJB开发提供了强大的工具集,使得开发者能够更专注于业务逻辑的实现,而无需过多关注底层基础设施的细节。随着Java EE技术的发展,现代的IDE如Eclipse和IntelliJ IDEA已经集成了更多...

    演示EJB3.0 + JPA + MySQL5.0 + C3P0连接池技术实战编程(Top-Down的XP开发方式)

    注意:配置JBoss服务器和调试的动作参见readme.txt文档,有详细说明怎样匹配连接池,以及可能遇到的问题及解决办法。该例子演示怎样使用Hibernate技术(没有使用XDoclet技术)实现JPA的Top-Down的XP开发流程,本人...

Global site tag (gtag.js) - Google Analytics