<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jinfeng_wang

    G-G-S,D-D-U!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks

     

    <?xml version="1.0"?>
    <project name="Harnessing Hibernate: The Developer's Notebook"
             default
    ="db" basedir=".">

      
    <!-- Set up properties containing important project directories -->
      
    <property name="source.root" value="src"/>
      
    <property name="class.root" value="classes"/>
      
    <property name="lib.dir" value="lib"/>
      
    <property name="data.dir" value="data"/>

      
    <!-- Set up the class path for compilation and execution -->
      
    <path id="project.class.path">
          
    <!-- Include our own classes, of course -->
          
    <pathelement location="${class.root}" />
          
    <!-- Include jars in the project library directory -->
          
    <fileset dir="${lib.dir}">
            
    <include name="*.jar"/>
          
    </fileset>
      
    </path>

      
    <target name="db" description="Runs HSQLDB database management UI
    against the database file--use when application is not running"
    >
          
    <java classname="org.hsqldb.util.DatabaseManager"
                fork
    ="yes">
             
    <classpath refid="project.class.path"/>
             
    <arg value="-driver"/>
             
    <arg value="org.hsqldb.jdbcDriver"/>
             
    <arg value="-url"/>
             
    <arg value="jdbc:hsqldb:${data.dir}/music"/>
             
    <arg value="-user"/>
             
    <arg value="sa"/>
          
    </java>
      
    </target>

      
    <!-- Teach Ant how to use Hibernate's code generation tool -->
      
    <taskdef name="hbm2java"
               classname
    ="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
               classpathref
    ="project.class.path"/>

      
    <!-- Generate the java code for all mapping files in our source tree -->
      
    <target name="codegen"
              description
    ="Generate Java source from the O/R mapping files">
        
    <hbm2java output="${source.root}">
          
    <fileset dir="${source.root}">
            
    <include name="**/*.hbm.xml"/>
          
    </fileset>
        
    </hbm2java>
      
    </target>

      
    <!-- Create our runtime subdirectories and copy resources into them -->
      
    <target name="prepare" description="Sets up build structures">
        
    <mkdir dir="${class.root}"/>

        
    <!-- Copy our property files and O/R mappings for use at runtime -->
        
    <copy todir="${class.root}" >
          
    <fileset dir="${source.root}" >
            
    <include name="**/*.properties"/>
            
    <include name="**/*.hbm.xml"/>
          
    </fileset>
        
    </copy>
      
    </target>

      
    <!-- Compile the java source of the project -->
      
    <target name="compile" depends="prepare"
              description
    ="Compiles all Java classes">
        
    <javac srcdir="${source.root}"
               destdir
    ="${class.root}"
               debug
    ="on"
               optimize
    ="off"
               deprecation
    ="on">
          
    <classpath refid="project.class.path"/>
        
    </javac>
      
    </target>

      
    <!-- Generate the schemas for all mapping files in our class tree -->
      
    <target name="schema" depends="compile"
              description
    ="Generate DB schema from the O/R mapping files">

        
    <!-- Teach Ant how to use Hibernate's schema generation tool -->
        
    <taskdef name="schemaexport"
                 classname
    ="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask"
                 classpathref
    ="project.class.path"/>

        
    <schemaexport properties="${class.root}/hibernate.properties"
                      quiet
    ="no" text="no" drop="no">
          
    <fileset dir="${class.root}">
            
    <include name="**/*.hbm.xml"/>
          
    </fileset>
        
    </schemaexport>
      
    </target>

    </project>

     

    You may be wondering why the taskdef for the schema update tool is inside our schema target, rather than at the top of the build file, next to the one for hbm2java. Well, I wanted it up there too, but I ran into a snag that's worth explaining. I got strange error messages the first time I tried to build the schema target, complaining there was no hibernate.properties on the class path and our compiled Track class couldn't be found. When I ran it again, it worked. Some detective work using ant -verbose revealed that if the classes directory didn't exist when the taskdef was encountered, Ant helpfully removed it from the class path. Since a taskdef can't have its own dependencies, the solution is to move it into the schema target, giving it the benefit of that target's dependencies, ensuring the classes directory exists by the time the taskdef is processed.

    也許你會奇怪,為何找了schema更新工具的taskdef會在schema的target中進行定義,而不是在build文件的頂部,緊接著hbm2java進行定義。剛開始我也是那樣想的,這里我需要解釋一下這里的問題。當第一次構建schema時,我得到了許多莫名奇妙的錯誤,報錯信息是:在classpath中找不到hibernate.properties和Track類。但是再次構建的時候,就可以了。當使用命令“ant -verbose”時,你就可以發現其中的細節之所在。如果在ant解析到taskdef時,build文件中所使用的class目錄并不存在,那么ant就會自己將此目錄從classpath中移除。但是taskdef又無法定義自己的dependencies,因此這里不得不將其移入到schema target中,這樣也就可以使用到target的dependencies,保證在ant處理taskdef的時候,class目錄必然已經存在。

    posted on 2005-04-01 10:22 jinfeng_wang 閱讀(1334) 評論(0)  編輯  收藏 所屬分類: hibernateant
    主站蜘蛛池模板: 免费日韩在线视频| xx视频在线永久免费观看| 国产在线a不卡免费视频| 亚洲人片在线观看天堂无码 | 又粗又长又爽又长黄免费视频| 在线观看成人免费视频| 亚洲av无码专区在线观看下载| 免费高清在线爱做视频| 老司机亚洲精品影院在线观看| 亚洲成a人片在线观看日本麻豆| 美女被免费视频网站| 亚洲色偷偷综合亚洲AV伊人| 九九久久精品国产免费看小说| 国产性爱在线观看亚洲黄色一级片| 中文在线免费视频| 亚洲a在线视频视频| 1000部拍拍拍18免费网站| 亚洲一卡2卡3卡4卡乱码 在线| 我要看WWW免费看插插视频| 黄色毛片免费网站| 久久亚洲综合色一区二区三区| 毛片无码免费无码播放| 亚洲人成色4444在线观看| 少妇亚洲免费精品| 久久九九全国免费| 亚洲精品美女网站| 亚洲人成色7777在线观看不卡| 无码少妇精品一区二区免费动态| 亚洲成电影在线观看青青| 国产女高清在线看免费观看| 韩国免费a级作爱片无码| 亚洲日产2021三区| 免费人成在线观看视频播放| 全免费a级毛片免费看| 亚洲中文字幕无码爆乳app| 亚洲中文字幕丝袜制服一区| 最近2019年免费中文字幕高清| 麻豆亚洲AV成人无码久久精品| 亚洲国产精品无码久久久秋霞2| 成视频年人黄网站免费视频| 一级做a爱过程免费视频高清|