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

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

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

    kapok

    垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      455 隨筆 :: 0 文章 :: 76 評論 :: 0 Trackbacks
    http://www.tkk7.com/jinfeng_wang/archive/2005/04/01/2688.html

    <?
    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-03 23:08 笨笨 閱讀(366) 評論(0)  編輯  收藏 所屬分類: HibernateAndSpring 、ALL
    主站蜘蛛池模板: 拍拍拍无挡视频免费观看1000| 久久综合给合久久国产免费| 一个人看www在线高清免费看| 777亚洲精品乱码久久久久久 | 亚洲精品美女久久久久99小说| 日本亚洲免费无线码 | 香蕉免费在线视频| 国产gv天堂亚洲国产gv刚刚碰| 大片免费观看92在线视频线视频| 亚洲视频在线精品| 97无码人妻福利免费公开在线视频| 国产亚洲一区二区三区在线观看| 免费看搞黄视频网站| 亚洲老熟女@TubeumTV| 国产成人无码免费看视频软件| 中文无码亚洲精品字幕| 国产免费av片在线无码免费看| 免费看美女午夜大片| 国产成A人亚洲精V品无码| 131美女爱做免费毛片| 亚洲欧美乱色情图片| 亚洲第一区精品观看| 中文字幕免费不卡二区| 亚洲乱码中文论理电影| 又大又硬又爽免费视频| 免费无码作爱视频| 亚洲国产精品综合久久久| 性做久久久久免费观看| 两个人的视频www免费| 亚洲国产日韩在线成人蜜芽| 国产hs免费高清在线观看| 永久免费A∨片在线观看| 久久狠狠爱亚洲综合影院| 亚洲国产精品一区二区三区久久 | 一级特黄特色的免费大片视频| 国产精品国产亚洲精品看不卡| 在线看片免费人成视久网| 狠狠热精品免费观看| 亚洲性69影院在线观看| 亚洲国产综合精品中文字幕| 777成影片免费观看|