OA—Ant构建工具和基于Ant的XDoclet开源项目的应用

本文介绍如何配置并使用Ant构建工具,并通过XDoclet插件自动生成Hibernate配置文件及映射文件。

Ant是一个基于java的构建工具,在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式。

    1、对Ant进行配置,首先确定电脑上已经安装了JDK,确保path环境变量中包含了java虚拟机的运行程序,确保环境变量中有JAVA_HOME变量:


    2、下载Ant,解压文件,文件下载地址(apacheant-1.6.5-bin和xdoclet-plugins-1.0.3)。

    3、设置ANT_HOME环境变量,指向ant解压根目录:


   4、在path环境变量中,添加ANT_HOME\bin目录:


   5、在cmd命令中运行ant,如果出现下面命令就表示ant安装成功了。


   Ant的运行,需要一个构建脚本,build.xml文件,根据这个脚本文件执行相应的任务。下面是一个最简单的构建脚本:

<?xml version="1.0" encoding="GBK"?>
<project name="测试脚本" default="copyfile" basedir=".">
	<target name="copyfile">
		<copy file="d:/a.txt" todir="d:/temp" overwrite="true"/>	
	</target>
</project>

    运行ant命令,就会把a.txt拷贝到了d:/temp目录下面。从上面的代码可以看出,脚本文件首先是一个xml文件,根元素是<project>标签,每一个任务都在<target>标签中,<copy>标签是一个拷贝任务,<project>标签中可以包含多个<target>,如果不指定运行哪个任务,将使用<project>标签中的default属性的traget。

Ant有本多内置的任务,但是我们也可以使用自己定义的任务,此时我们需要使用<taskdef>标签定义。

<path id="xdoclet.task.classpath">
		<fileset dir="${xdoclet.home}/lib">
			<include name="**/*.jar"/>
		</fileset>
		<fileset dir="${xdoclet.home}/plugins">
			<include name="**/*.jar"/>
		</fileset>
	</path>
	<taskdef
		name="xdoclet"
		classname="org.xdoclet.ant.XDocletTask"
		classpathref="xdoclet.task.classpath"
	/>

    <path>标签元素是用来定义一个路径的,通常是定义classpath,因为classpath可以包含很多jar包,也可以包含很多目录,所以使用<fileset>标签来定义这些路径。

    <include>标签中的name属性也是一个路径模式,包括本目录下的所有子目录中的jar文件。

XDoclet是一个开源项目,可以通过在java源代码中的一些特殊的注释信息,自动生成配置文件、源代码等等,例如webejbhibernate的部署描述文件、生成strutsstruts-config.xml配置文件、javascript校验等。它不可以单独使用,必须和一些工具配合使用,下面是一个XDoclet和Ant配置使用创建Hibernate映射文件和配置文件的例子:

    构建实体(User.java):

package com.bjsxt.oa.model;
/**
 * 
 * @author xiao
 * @hibernate.class table="T_User"
 */
public class User {
	
	/**
	 * @hibernate.id
	 * 		generator-class="native"
	 */
	private Integer id;
	/**
	 * @hibernate.property
	 */
	private String username;
	/**
	 * @hibernate.property
	 */
	private String password;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}

   确定映射文件中的主键和其他属性以及主键的生成策略。

   创建build.xml文件:

<?xml version="1.0" encoding="GBK"?>
<project name="OA系统构建脚本" default="生成Hibernate配置文件" basedir=".">

	<property name="src.dir" value="${basedir}/src"/>
	<property name="xdoclet.home" value="D:/TGB/OA/xdoclet-plugins-1.0.3"/>
	
	<!--Build classpath-->
	<path id="xdoclet.task.classpath">
		<fileset dir="${xdoclet.home}/lib">
			<include name="**/*.jar"/>
		</fileset>
		<fileset dir="${xdoclet.home}/plugins">
			<include name="**/*.jar"/>
		</fileset>
	</path>
	<taskdef
		name="xdoclet"
		classname="org.xdoclet.ant.XDocletTask"
		classpathref="xdoclet.task.classpath"
	/>
	
	<target name="生成Hibernate配置文件">
		<xdoclet>
			<fileset dir="${src.dir}/com/bjsxt/oa/model">
				<include name="**/*.java"/>
			</fileset>
			<component
				classname="org.xdoclet.plugin.hibernate.HibernateConfigPlugin"
				destdir="${src.dir}"
				version="3.0"
				jdbcurl="jdbc:mysql://localhost:3306/oa"
				jdbcdriver="com.mysql.jdbc.Driver"
				jdbcusername="root"
				jdbcpassword="root"
				dialect="org.hibernate.dialect.MySQLDialect"
				showsql="true"
				>
			</component>
		</xdoclet>
	</target>
	
	<target name="生成Hibernate映射文件">
		<xdoclet>
			<fileset dir="${src.dir}/com/bjsxt/oa/model">
				<include name="**/*.java"/>
			</fileset>
			<component
				classname="org.xdoclet.plugin.hibernate.HibernateMappingPlugin"
				version="3.0"
				destdir="${src.dir}">
			</component>
		</xdoclet>
	</target>
</project>
		
		

   所有的任务<target>都在<project>标签中,其中包含了两个<target>标签,分别是生成Hibernate的配置文件和Hibernate的映射文件。<fileset>标签中是文件的生成路径。

    build.xml文件需要运行在Ant中,下面是将build.xml文件加入到Ant中:


   分别运行两个文件,就会生成对应的文件。




    在学习Hibernate框架的时候,所有实体的映射文件和配置文件都是我们手动编写的,现在使用构建工具就可以方便的快速生成,越来越能体会到工具是如何的强大。








评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值