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

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

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

    waysun一路陽光

    不輕易服輸,不輕言放棄.--心是夢的舞臺,心有多大,舞臺有多大。踏踏實實做事,認認真真做人。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 64 評論 :: 0 Trackbacks

    弄了好久的ant打包終于明白了,貼出來大家分享。
    <?xml version="1.0" encoding="UTF-8"?>
    <project name="gpdi" basedir="." default="deploy">
     <!-- Properties and Paths -->
     <property name="dir.java.src" value="src" />
     <property name="dir.java.build" value="defaultroot/WEB-INF/classes" />
     <property name="dir.lib" value="lib" />
     <property name="dir.deploy" value="deploy" />

     <property name="file.manifest" value="manifest.txt" />

     <property name="file.jar" value="gpdi.jar" />
     <!-- Just to fool the test -->
     <property name="gpdi.root" value="." />
        <!-- 排除java源文件的模式集 -->
        <patternset id="no.java">
            <exclude name="**/*.java" />
        </patternset>
     <path id="project.class.path">
      <pathelement location="${dir.java.build}"/>
      <fileset dir="${dir.lib}" id="lib.path">
       <include name="**/*.jar"/>
      </fileset>
       
     </path>
     
        <!-- 初始化,建立目錄,復制文件 -->
     
        <target name="init" depends="clean" description="初始化,建立目錄,復制文件">

            <mkdir dir="${dir.java.build}" />

            <mkdir dir="${dir.dist}" />

            <copy todir="${dir.java.build}">

                <fileset dir="${dir.java.src}">

                    <patternset refid="no.java" />

                </fileset>

            </copy>

        </target>
     
        <!-- 清理,刪除臨時目錄 -->
     
        <target name="clean" description="清理,刪除臨時目錄">

            <delete dir="${dir.java.build}" />

            <delete dir="${dir.dist}" />

            <echo level="info">清理完畢</echo>

        </target>
     
     <!-- 編譯源文件-->

     <target name="compile" 
      
      depends="init" 
      
      description="編譯源文件">
      
      <javac srcdir="${dir.java.src}"
       
       destdir="${dir.java.build}"
       
       deprecation="off"
       
       debug="off"
       
       encoding="gbk"
       
       source="1.5" 
       
       target="1.5">
       
       <classpath refid="project.class.path"/>
       
      </javac>
      
     </target>

        <!-- 創建清單文件 -->

        <target name="create.manifest" description="創建清單文件">
            <manifest file="${dir.java.src}/${file.manifest}">
                <attribute name="Built-By" value="${user.name}" />
                <attribute name="Main-Class" value="com.mfsoft.net.task.TaskJob" />
                <attribute name="Class-Path" value="lib/log4j-1.2.9.jar lib/classes12.jar lib/joone-engine.jar" />
            </manifest>

        </target>

        <!-- 打包類文件 -->
     
        <target name="deploy" depends="create.manifest" description="打包類文件">
            <mkdir dir="${dir.deploy}" />
            <mkdir dir="${dir.deploy}/log" />
            <jar jarfile="${dir.deploy}/${file.jar}" manifest="${dir.java.src}/${file.manifest}">
                <fileset dir="${dir.java.build}" includes="db.properties,config.properties,log4j.properties,com/mfsoft/net/task/*.class,com/mfsoft/credit/modelmang/operation/*.class,
                com/mfsoft/net/datatranslate/*.class,com/mfsoft/net/pre/*.class,com/mfsoft/icity/platform/database/*.class,com/mfsoft/icity/platform/datashare/*.class,
                com/mfsoft/icity/platform/publicclass/*.class,com/mfsoft/credit/viable/*.class" />            
            </jar>  
      <!--復制用到的庫以及其他文件 -->
    <mkdir dir="${dir.deploy}/lib"/>
    <copy todir="${dir.deploy}/lib">
     <fileset dir="defaultroot/WEB-INF/lib" includes="classes12.jar,joone-engine.jar,log4j-1.2.9.jar"/>
    </copy>  
    <mkdir dir="${dir.deploy}/model"/> 
    <copy todir="${dir.deploy}/model">
     <fileset dir="defaultroot/WEB-INF/classes" includes="*.snet"/>
    </copy> 
        </target>
    </project>



    1.project 根結點
       基本屬性:name、default、basedir。
       name:    項目名稱(可選)
       default: 默認開始執行的target。(必需)
       basedir: 用于計算所有其他路徑的基路徑??梢员籦asedir property覆蓋。當覆蓋時,該屬性被忽略。如果屬性和basedir property都沒有設定,就使用build.xml的父目錄。一般basedir=".",設置為build.xml所在的目錄。(可選)
     
    2.target
     Attribute屬性  Description屬性值內容  Required
     name  target的名字  Y
     depends  需要依賴的其他target  N
     description  關于target功能的簡短描述  N
     if  為了執行本target而被設置的屬性的名字  N
     unless  為了執行本target而不被設置的屬性的名字  N
     
       2.1 依賴關系depands
           <target name="A"/>
           <target name="B" depends="A"/>
           <target name="C" depends="B"/>
           <target name="D" depends="C,B,A"/>
           當執行target D,則先執行A,再B,然后C,最后D。
           一個target只能被執行一次,即使有多個target依賴于它。
     
       2.2 if,unless
           if屬性表示該屬性內容的變量如果已經被設置了,則可以執行本target;
           unless屬性則表示該屬性內容的變量如果還沒有被設置,則可以執行本target。
           偽代碼:
           //if="ready"                    //unless="ready"
           if(ready == "ok"){              if(ready == null){
              execute target;                     execute target;
           }else {                                  }else {
              skip;                                        skip;
           }                                            }
           如果沒有if或unless屬性,target總會被執行。
     
       2.3 description屬性
           可選的description屬性可用來提供關于target的一行描述,可由-projecthelp命令行選項輸出
     
    3. task
       常用的task:
       3.1 創建目錄mkdir
           創建一個目錄,如果其父目錄不存在,也會被同時創建。
           <mkdir dir="build/classes"/>
          
           <target name="init">
              <mkdir dir="${dist.dir}" />
                <mkdir dir="${dist.classes.dir}" />
                <mkdir dir="${dist.webapps.dir}" />
           </target>
     
       3.2 刪除目錄delete
           <delete includeEmptyDirs="true">
                <fileset dir="${build}"/>
           </delete>
     
           <target name="clean" description="clean up" >
                <delete dir="${build}"/>
                <delete dir="${dist}"/>
           </target>
     
       3.3 copy文件或目錄
           <copy file="file" tofile="file.bak"/>
     
           <copy file="config.xml" todir="${dist.classes.dir}"/>
     
           <copy todir="${targetdir}">
                <fileset dir="${sourcedir}"/>
           </copy>
     
           <target name="copy-resources" depends="clean">
                <copy todir="${targetdir}">
                    <fileset dir="${sourcedir}">
                        <exclude name="**/**/*.java" />
                    </fileset>
                </copy>
           </target>
     
       3.4 move文件或目錄
           <move file="file" tofile="file.bak"/>
     
           <move todir="${targetdir}">
                <fileset dir="${sourcedir}"/>
           </move>
     
           <move todir="${targetdir}">
                <fileset dir="${sourcedir}">
                     <include name="**/**/*.java" />
                </fileset>
           </move>
     
       3.5 compile
           <path id="libraries">
                <fileset dir="${libdir}">
                     <include name="*.jar" />
                </fileset>
           </path>
           <target name="compile" depends="copy-resources">
                <javac srcdir="${sourcedir}"
                       destdir="${targetdir}"
                       classpathref="libraries" />
                <jar destfile="${jardir}/my.jar" basedir="${targetdir}"/>
           </target>
     
       3.6 jar
           <jar destfile="${jardir}/my.jar" basedir="${targetdir}"/>
     
           <jar destfile="${dist}/lib/app.jar">
                <fileset dir="${build}/classes"
            excludes="**/Test.class"
             />
               <fileset dir="${src}/resources"/>
           </jar>
    4. 變量property
       <property name="sourcedir" value="${basedir}/src" />
       <property name="build"     location="build" />
       除了可以使用自定義的變量,還可以使用java系統屬性, 例如${os.name}對應操作系統的名字,以及Ant內置屬性:  
       basedir                     <project>的basedir屬性
       ant.file                      buildfile的絕對路徑
       ant.version               Ant的版本
       ant.project.name     當前執行的project的名字;由<project>的name屬性設定
       ant.java.version      Ant檢測到的JVM的版本
     
    5. build.xml example
    <?xml version="1.0" encoding="UTF-8" ?>
    <project default="junitTest" name="myProject" basedir=".">

            <property name="sourcedir" value="${basedir}/src" />
            <property name="targetdir" value="${basedir}/WEB-INF/classes" />
            <property name="libdir" value="${basedir}/WEB-INF/lib" />
            
            <path id="libraries">
                    <fileset dir="${libdir}">
                            <include name="*.jar" />
                    </fileset>
            </path>
            
            
            <target name="junitTest" depends="compile">
                    <java classname="junit.textui.TestRunner" >
                            <classpath>
                                    <path refid="libraries" />
                                    <path location="${targetdir}" />
                            </classpath>
                            <arg value="can.junit.HibernateDemoTest" />
                    </java>
            </target>

            <target name="compile" depends="copy-resources">
                    <javac srcdir="${sourcedir}"
                            destdir="${targetdir}"
                            classpathref="libraries" />
            </target>
                    
            <target name="copy-resources" depends="clean">
                    <copy todir="${targetdir}">
                            <fileset dir="${sourcedir}">
                                    <exclude name="**/**/*.java" />
                            </fileset>
                    </copy>
            </target>
            
            <target name="clean" >
                    <delete dir="${targetdir}" />
                    <mkdir    dir="${targetdir}" />
            </target>
    </project>

    附件下載:
    JSPDemo
    StrutsDemo
    1.project 根結點
       基本屬性:name、default、basedir。
       name:    項目名稱(可選)
       default: 默認開始執行的target。(必需)
       basedir: 用于計算所有其他路徑的基路徑。可以被basedir property覆蓋。當覆蓋時,該屬性被忽略。如果屬性和basedir property都沒有設定,就使用build.xml的父目錄。一般basedir=".",設置為build.xml所在的目錄。(可選)
     
    2.target
     Attribute屬性  Description屬性值內容  Required
     name  target的名字  Y
     depends  需要依賴的其他target  N
     description  關于target功能的簡短描述  N
     if  為了執行本target而被設置的屬性的名字  N
     unless  為了執行本target而不被設置的屬性的名字  N
     
       2.1 依賴關系depands
           <target name="A"/>
           <target name="B" depends="A"/>
           <target name="C" depends="B"/>
           <target name="D" depends="C,B,A"/>
           當執行target D,則先執行A,再B,然后C,最后D。
           一個target只能被執行一次,即使有多個target依賴于它。
     
       2.2 if,unless
           if屬性表示該屬性內容的變量如果已經被設置了,則可以執行本target;
           unless屬性則表示該屬性內容的變量如果還沒有被設置,則可以執行本target。
           偽代碼:
           //if="ready"                    //unless="ready"
           if(ready == "ok"){              if(ready == null){
              execute target;                     execute target;
           }else {                                  }else {
              skip;                                        skip;
           }                                            }
           如果沒有if或unless屬性,target總會被執行。
     
       2.3 description屬性
           可選的description屬性可用來提供關于target的一行描述,可由-projecthelp命令行選項輸出
     
    3. task
       常用的task:
       3.1 創建目錄mkdir
           創建一個目錄,如果其父目錄不存在,也會被同時創建。
           <mkdir dir="build/classes"/>
          
           <target name="init">
              <mkdir dir="${dist.dir}" />
                <mkdir dir="${dist.classes.dir}" />
                <mkdir dir="${dist.webapps.dir}" />
           </target>
     
       3.2 刪除目錄delete
           <delete includeEmptyDirs="true">
                <fileset dir="${build}"/>
           </delete>
     
           <target name="clean" description="clean up" >
                <delete dir="${build}"/>
                <delete dir="${dist}"/>
           </target>
     
       3.3 copy文件或目錄
           <copy file="file" tofile="file.bak"/>
     
           <copy file="config.xml" todir="${dist.classes.dir}"/>
     
           <copy todir="${targetdir}">
                <fileset dir="${sourcedir}"/>
           </copy>
     
           <target name="copy-resources" depends="clean">
                <copy todir="${targetdir}">
                    <fileset dir="${sourcedir}">
                        <exclude name="**/**/*.java" />
                    </fileset>
                </copy>
           </target>
     
       3.4 move文件或目錄
           <move file="file" tofile="file.bak"/>
     
           <move todir="${targetdir}">
                <fileset dir="${sourcedir}"/>
           </move>
     
           <move todir="${targetdir}">
                <fileset dir="${sourcedir}">
                     <include name="**/**/*.java" />
                </fileset>
           </move>
     
       3.5 compile
           <path id="libraries">
                <fileset dir="${libdir}">
                     <include name="*.jar" />
                </fileset>
           </path>
           <target name="compile" depends="copy-resources">
                <javac srcdir="${sourcedir}"
                       destdir="${targetdir}"
                       classpathref="libraries" />
                <jar destfile="${jardir}/my.jar" basedir="${targetdir}"/>
           </target>
     
       3.6 jar
           <jar destfile="${jardir}/my.jar" basedir="${targetdir}"/>
     
           <jar destfile="${dist}/lib/app.jar">
                <fileset dir="${build}/classes"
            excludes="**/Test.class"
             />
               <fileset dir="${src}/resources"/>
           </jar>
    4. 變量property
       <property name="sourcedir" value="${basedir}/src" />
       <property name="build"     location="build" />
       除了可以使用自定義的變量,還可以使用java系統屬性, 例如${os.name}對應操作系統的名字,以及Ant內置屬性:  
       basedir                     <project>的basedir屬性
       ant.file                      buildfile的絕對路徑
       ant.version               Ant的版本
       ant.project.name     當前執行的project的名字;由<project>的name屬性設定
       ant.java.version      Ant檢測到的JVM的版本
     
    5. build.xml example
    <?xml version="1.0" encoding="UTF-8" ?>
    <project default="junitTest" name="myProject" basedir=".">

            <property name="sourcedir" value="${basedir}/src" />
            <property name="targetdir" value="${basedir}/WEB-INF/classes" />
            <property name="libdir" value="${basedir}/WEB-INF/lib" />
            
            <path id="libraries">
                    <fileset dir="${libdir}">
                            <include name="*.jar" />
                    </fileset>
            </path>
            
            
            <target name="junitTest" depends="compile">
                    <java classname="junit.textui.TestRunner" >
                            <classpath>
                                    <path refid="libraries" />
                                    <path location="${targetdir}" />
                            </classpath>
                            <arg value="can.junit.HibernateDemoTest" />
                    </java>
            </target>

            <target name="compile" depends="copy-resources">
                    <javac srcdir="${sourcedir}"
                            destdir="${targetdir}"
                            classpathref="libraries" />
            </target>
                    
            <target name="copy-resources" depends="clean">
                    <copy todir="${targetdir}">
                            <fileset dir="${sourcedir}">
                                    <exclude name="**/**/*.java" />
                            </fileset>
                    </copy>
            </target>
            
            <target name="clean" >
                    <delete dir="${targetdir}" />
                    <mkdir    dir="${targetdir}" />
            </target>
    </project>

    附件下載:
    JSPDemo
    StrutsDemo

    posted on 2009-04-15 21:57 weesun一米陽光 閱讀(13704) 評論(0)  編輯  收藏 所屬分類: JAVA源碼 、總結備用
    主站蜘蛛池模板: a级毛片免费全部播放| 亚洲日本VA午夜在线电影| 久香草视频在线观看免费| 亚洲 国产 图片| 免费人成视频在线播放| 国产在线观看免费完整版中文版| 亚洲精品动漫免费二区| 在线观看人成视频免费| 偷自拍亚洲视频在线观看| 免费在线精品视频| 精品国产福利尤物免费| 亚洲AV无码专区国产乱码4SE| 国产精品亚洲精品日韩已满| 三级毛片在线免费观看| 久久精品国产亚洲AV果冻传媒| 99精品视频免费观看| 亚洲人成777在线播放| 精品久久洲久久久久护士免费 | 91天堂素人精品系列全集亚洲| 亚洲一级毛片免费看| 在线综合亚洲中文精品| 久久aa毛片免费播放嗯啊| 亚洲白嫩在线观看| 女人18一级毛片免费观看| 瑟瑟网站免费网站入口| 亚洲VA中文字幕无码一二三区| 中文毛片无遮挡高潮免费| 亚洲国产aⅴ成人精品无吗| 国产午夜亚洲精品理论片不卡| 日韩成人免费视频| 国精无码欧精品亚洲一区| 91精品免费久久久久久久久| 亚洲精品动漫免费二区| 亚洲人成色7777在线观看| 农村寡妇一级毛片免费看视频| 亚洲精品国产美女久久久| 可以免费看的卡一卡二| 黄色视屏在线免费播放| 亚洲熟妇AV日韩熟妇在线| 亚洲成网777777国产精品| 国产91成人精品亚洲精品|