posts - 165, comments - 198, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

ant 项目使用(修改配置,并加上lib 直接使用)

Posted on 2008-06-23 16:27 G_G 阅读(1715) 评论(0)  编辑  收藏 所属分类: ant

功能描述:
1.ant hibernate:由class xdoclet 得到映射.
2.hbm2ddl  action
   2.0.建立此动作文件                                                   
   2.1.备份数据库,并重建数据库    
   2.2.建立hbm2ddl标签并建create table sql 文件
   2.3.执行sql文件      basicData.sql ; test.sql

3.junit 集成测试

lib 需要

  • commons-collections-2.0.jar
  • commons-logging.jar
  • dom4j-1.6.1.jar
  • hibernate3.jar
  • hibernate-tools.jar
  • junit.jar
  • mysql-connector-java-5.0.8-bin.jar
  • xdoclet-1.2.3.jar
  • xdoclet-hibernate-module-1.2.3.jar
  • xdoclet-xdoclet-module-1.2.3.jar
  • xjavadoc-1.1.jar

文件路径
   ant---------
            +-- basicData.sql  系统数据库建表
            |-- build-dist.properties  项目配置
            |--test.sql  插入测试数据
   build.xml

build.xml
<?xml version="1.0" encoding="utf-8"?>
<!--
    维护 
        path->hibernatedoclet.class.path
        path->tproject.class.path    
-->
<project name="XDoclet Examples" basedir=".">
    
<property name="xdoclet.root.dir" value="${basedir}/.." />
    
<property file="${xdoclet.root.dir}/build.properties" />
    
<property file="./ant/build-dist.properties" />



    
    
    
<path id="hibernatedoclet.class.path">
        
<fileset dir="${xdoclet2.lib.dir}">
            
<include name="*.jar" />
        
</fileset>
    
</path>


    
<path id="tproject.class.path">
        
<fileset dir="${tproject.lib}">
            
<include name="**/*.jar" />
        
</fileset>
        
<fileset dir="${tproject.classpath}">
            
<include name="**/*.*" />
        
</fileset>
        
<fileset dir="${xdoclet2.lib.dir}">
            
<include name="*.jar" />
        
</fileset>
    
</path>

    
<!-- =================================================================== -->
    
<!-- Initialise                                                          -->
    
<!-- =================================================================== -->
    
<target name="init">
        
<tstamp>
            
<format property="Ttstamp" pattern="yyyy_MM_dd_HH_mm_ss" />
        
</tstamp>
        
<taskdef name="hibernatedoclet" classname="xdoclet.modules.hibernate.HibernateDocletTask" classpathref="hibernatedoclet.class.path" />
    
</target>


    
<!-- =================================================================== -->
    
<!-- Invoke XDoclet's hibernate                                          -->
    
<!-- =================================================================== -->
    
<target name="hibernate" depends="init" description="Generate mapping documents (run jar first)">

        
<echo>+---------------------------------------------------+</echo>
        
<echo>|                                                   |</echo>
        
<echo>| R U N N I N G   H I B E R N A T E D O C L E T     |</echo>
        
<echo>|                                                   |</echo>
        
<echo>+---------------------------------------------------+</echo>

        
<hibernatedoclet destdir="${tproject.conf}" excludedtags="@version,@author,@todo,@see" addedtags="@xdoclet-generated at ${TODAY},@copyright The XDoclet Team,@author XDoclet,@version ${version}" force="${samples.xdoclet.force}" verbose="true">
            
            
<!-- hibernate 需要维护的 fileset -->
            
<fileset dir="demo">
                
<include name="**/*Bean.java" />
            
</fileset>
            
<hibernate version="3.0" />
        
</hibernatedoclet>
    
</target>

    
<!-- =================================================================== 
        hbm2ddl  action
            0.建立此动作文件                                                    
            1.备份数据库,并重建数据库     
            2.建立hbm2ddl标签并建create table sql 文件
            3.执行sql文件                                                                                
     =================================================================== 
-->
    
<target name="hbm2ddl" depends="init">
        
<echo>this->create table ENGINE=InnoDB DEFAULT CHARSET=utf8 </echo>
        
<echo>--c:\\my.ini--</echo>
        
<echo>
            [mysqld]
            default-storage-engine=InnoDB
            default-character-set=utf8
            [mysql]
            default-character-set=utf8
        
</echo>

        
<property name="this.sql.path" value="${tproject.conf.sql}/${Ttstamp}" />
        
<mkdir dir="${this.sql.path}" />
        
<echo message="for  ${hibernate.cfg.xml.dir} -> ${hibernate.cfg.xml.file}" />
        
<property name="sql.file" value="hbm2ddl.sql" />
        
<echo message=" dump mysql database - > ${use.database}" />
        
<property name="hibernate.cfg.jdbc.url" value="jdbc:mysql://localhost:3306/${use.database}?characterEncoding=${characterEncoding}" />
        
<property name="dbAction.jdbc.url" value="jdbc:mysql://localhost:3306/mysql?characterEncoding=${characterEncoding}" />

        
        
<!--1.备份数据库,并重建数据库  -->
        
<sql driver="${hibernate.cfg.driver}" url="${dbAction.jdbc.url}" userid="${hibernate.cfg.username}" password="${hibernate.cfg.password}" print="yes" >
            
<classpath refid="tproject.class.path" />
            create database if not exists  ${use.database} ;
        
</sql>
        
<exec executable="cmd">
            
<arg line="/c  ${mysql.home}/bin/mysqldump --opt ${use.database} -u${hibernate.cfg.username}  > ${this.sql.path}/dump.sql" />
        
</exec>
        
<sql driver="${hibernate.cfg.driver}" url="${dbAction.jdbc.url}" userid="${hibernate.cfg.username}" password="${hibernate.cfg.password}" print="yes" >
            
<classpath refid="tproject.class.path" />
            drop database if exists  ${use.database} ;
            create database ${use.database} ;
        
</sql>
        
        
<!--建立hbm2ddl标签并建create table sql 文件 -->
        
<taskdef name="hbm2ddl" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="hibernatedoclet.class.path">
            
<classpath location="${tproject.conf}">
            
</classpath>
            
<classpath>
                
<path>
                    
<fileset dir="${tproject.conf}">
                        
<include name="**/*.hbm.xml" />
                    
</fileset>
                
</path>
            
</classpath>
        
</taskdef>
        
        
<echo message=" hbm2ddl database by  - > ${use.database} ${hibernate.cfg.xml.file} " />
        
<echo message=" hbm2ddl path = ${this.sql.path} " />
        
<echo message=" hbm2ddl file = ${sql.file} " />
        
<hbm2ddl destdir="${this.sql.path}">
            
<configuration configurationfile="${hibernate.cfg.xml.file}" />
            
<hbm2ddl export="false" console="false" create="true" update="false" drop="true" outputfilename="${sql.file}" />
        
</hbm2ddl>
        
<!-- 执行sql文件 -->
        
<sql driver="${hibernate.cfg.driver}" url="${hibernate.cfg.jdbc.url}" userid="${hibernate.cfg.username}" password="${hibernate.cfg.password}" onerror="continue" print="yes" src="${this.sql.path}/${sql.file}" classpathref="hibernatedoclet.class.path" />
        
<sql driver="${hibernate.cfg.driver}" url="${hibernate.cfg.jdbc.url}" userid="${hibernate.cfg.username}" password="${hibernate.cfg.password}" onerror="continue" print="yes" src="./ant/basicData.sql" classpathref="hibernatedoclet.class.path" />
        
<sql driver="${hibernate.cfg.driver}" url="${hibernate.cfg.jdbc.url}" userid="${hibernate.cfg.username}" password="${hibernate.cfg.password}" onerror="continue" print="yes" src="./ant/test.sql" classpathref="hibernatedoclet.class.path" />
                
    
</target>


    
<target name="make resource">
        
<delete file="${tproject.conf}/globalMessages_zh_CN.properties">
        
</delete>

        
<exec dir="${tproject.conf}" executable="native2ascii">
            
<arg line="
                globalMessages.properties
                globalMessages_zh_CN.properties"
 />
        
</exec>
    
</target>


    
<!-- =================================================================== -->
    
<!-- junit                                                             -->
    
<!-- =================================================================== -->
    
<target name="test">
        
<mkdir dir="${tproject.conf}/htmlreport" />
        
<mkdir dir="${tproject.conf}/report" />
        
<junit>
            
<classpath refid="tproject.class.path" />
            
<classpath path="${tproject.classpath}">
            
</classpath>
            
<formatter type="xml" />
            
<batchtest haltonfailure="no" todir="${tproject.conf}/report">
                
                
<!-- junit 需要维护的 fileset -->
                
<fileset  dir="./demo">
                    
<include name="**/Test*.java" />
                
</fileset>
                
                
            
</batchtest>
        
</junit>

        
<junitreport todir="${tproject.conf}/htmlreport">
            
<fileset dir="${tproject.conf}/report">
                
<include name="TEST-*.xml" />
            
</fileset>
            
<report format="noframes" todir="${tproject.conf}/htmlreport" />
        
</junitreport>
        
<echo message="end test -> print->${tproject.conf}/htmlreport/junit-noframes.html " />
    
</target>

</project>



配置文件:(我测试项目的)
# These properties are only used when building the samples expanded from the distribution.
xdoclet2.lib.dir
=./xdoclet2/lib

tproject.classpath
=./WebContent/WEB-INF/classes
tproject.conf
=./conf
tproject.lib
=./WebContent/WEB-INF/lib
tproject.conf.sql
=${tproject.conf}/sql

------------------------------------------------------------------------------------- #
hibernate.cfg.xml.file
=${tproject.classpath}/hibernate.cfg.xml
mysql.home
=D:/mysql-noinstall-5.0.27-win32/mysql-5.0.27-win32
hibernate.cfg.driver
=com.mysql.jdbc.Driver
characterEncoding
=utf8
hibernate.cfg.username
=root
hibernate.cfg.password
=
use.database
=aop




只有注册用户登录后才能发表评论。


网站导航: