和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应用了。

你可能感兴趣的:(eclipse,Hibernate,xml,struts,ant)