<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: 用于計算所有其他路徑的基路徑。可以被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
    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视频在线免费观看| ww亚洲ww在线观看国产| 亚洲国产精品激情在线观看 | 亚洲愉拍一区二区三区| 亚洲毛片免费观看| 亚洲色av性色在线观无码| 久久亚洲AV无码精品色午夜| 亚洲情a成黄在线观看动漫尤物| 国产A在亚洲线播放| 日本免费人成在线网站| 亚洲av中文无码乱人伦在线观看| 色噜噜亚洲男人的天堂| 亚洲男人天堂2022| 一本色道久久88亚洲精品综合| 亚洲影院天堂中文av色| 美女被免费网站在线视频免费| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲精品无码成人片在线观看 | 精品国产免费观看| 成人永久免费福利视频网站| 国产成人免费ā片在线观看| 亚洲午夜日韩高清一区| 亚洲精品夜夜夜妓女网| 日韩亚洲Av人人夜夜澡人人爽| 久久久久久亚洲Av无码精品专口 | 免费在线观看一级毛片| 国产成人亚洲综合| 亚洲av无码成h人动漫无遮挡| 亚洲综合一区二区精品久久| 亚洲中文字幕无码中文| 国产精品亚洲精品日韩动图| 久久久受www免费人成| 2020因为爱你带字幕免费观看全集 | 猫咪免费人成网站在线观看入口| 国产激情久久久久影院老熟女免费| a毛片免费在线观看| 皇色在线视频免费网站| 四虎永久免费观看| 亚洲AV永久无码精品| 亚洲国产午夜精品理论片| 亚洲AV成人无码网天堂|