溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          雪山飛鵠

          溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
          build.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <project default="run" name="build-project-with-ant">
              
              <!-- 最終編譯后的jar包名稱 -->
              <property name="jar.prefix-name" value="cms"></property>
              <property name="jar.version" value="1.0"></property>
              <property name="tomcat.version" value="6.0.18" />
              
              <property name="mailhost" value="smtp.qq.com"></property>
              <property name="username" value="**********" />
              <property name="password" value="**********"></property>
              <property name="mailfrom" value="184675420@qq.com" />
              <property name="mailto" value="184675420@qq.com"></property>
              <property name="mailsubject" value="使用Ant自助構建項目測試打包文檔"></property>
              
              <!-- 項目構建時所需要的lib -->
              <property name="project.lib.dir" value="${basedir}/WebRoot/WEB-INF/lib"></property>

              <!-- 項目構建時tomcat的home目錄 -->
              <property name="tomcat.download.url" value="http://archive.apache.org/dist/tomcat/tomcat-6/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.zip"></property>
              
              <!-- 項目構建時下載tomcat的存放目錄 -->
              <property name="tomcat.dir" value="${basedir}/dist/"></property>
              
              <!-- 定義項目的當前目錄 -->
              <property name="basedir" value="."/>
              <!-- 定義項目源碼目錄 -->
              <property name="src.dir" value="${basedir}/src"></property>
              <!-- 定義項目源碼編譯后的目錄 -->
              <property name="build.dir" value="${basedir}/classes"></property>
              <!-- 定義項目最終編譯生成的目錄 -->
              <property name="dist.dir" value="${basedir}/dist"></property>
              <!-- 定義項目文檔的目錄 -->
              <property name="doc.dir" value="${basedir}/doc"></property>
              <!-- 定義項目文檔api的目錄 -->
              <property name="doc.dir.api" value="${doc.dir}/api"></property>
              <!-- 定義項目單元測試文檔的目錄 -->
              <property name="junit.doc.dir" value="${basedir}/doc/api/junit"></property>
              <!-- 定義項目單元測試源碼的目錄 -->    
              <property name="junit.src.dir" value="${basedir}/test"></property>
              <!-- 定義項目單元測試編譯的目錄 -->    
              <property name="junit.dir" value="${basedir}/junit"></property>
              <property name="junit.build.dir" value="${junit.dir}/classes"></property>
              <!-- 定義項目單元測試測試報告的目錄 -->    
              <property name="junit.report.dir" value="${junit.dir}/report"></property>
              
              
              <target name="init" description="init">
                  
                  <echo>項目初始化設置</echo>
                  
                  <delete dir="${build.dir}"></delete>
                  <delete dir="${dist.dir}"></delete>
                  <delete dir="${doc.dir}"></delete>
                  <delete dir="${junit.dir}"></delete>
                  
                  <mkdir dir="${build.dir}"/>
                  <mkdir dir="${dist.dir}"/>
                  <mkdir dir="${doc.dir}"/>
                  <mkdir dir="${junit.build.dir}"/>
                  <mkdir dir="${junit.report.dir}"/>
                  
              </target>
              
              
              <target name="compile" depends="init" description="compile source">
                  <echo>編譯源碼</echo>
                  <javac srcdir="${src.dir}" includeantruntime="false" destdir="${build.dir}" verbose="true">
                  <classpath>
                      <fileset dir="${project.lib.dir}">
                          <include name="*.jar"/>
                      </fileset>
                  </classpath>
                  </javac>
              </target>


              <target name="api-doc" depends="compile" description="build javadoc">
                  <echo>生成api-doc幫助文檔</echo>
                  <javadoc
                         destdir="${doc.dir.api}"
                         author="true"
                         version="true"
                         use="true"
                         windowtitle="${jar.prefix-name} API"
                         sourcepath="${src.dir}">
                      <doctitle><![CDATA[<h1>Test</h1>]]></doctitle>
                      <bottom><![CDATA[<i>Copyright © 2012 Dummy Corp. All Rights Reserved.</i>]]></bottom>
                      
                      <classpath>
                          <fileset dir="${project.lib.dir}">
                              <include name="*.jar"/>
                          </fileset>
                      </classpath>
                  </javadoc>
              </target>
              
              <target name="junit-javac" depends="api-doc" description="junit test case compile">
                  <echo>編譯junit</echo>
                  <javac destdir="${junit.build.dir}" srcdir="${junit.src.dir}" fork="false" includeantruntime="false">
                  <classpath>
                      <fileset dir="${project.lib.dir}">
                          <include name="*.jar"/>
                      </fileset>
                  </classpath>
                  </javac>
              </target>
              
              <target name="junit-run" depends="junit-javac" description="junit test case execute">
                  <echo>運行單元測試</echo>
                  <junit printsummary="yes" haltonfailure="false">
                      <classpath>
                          <pathelement location="${junit.build.dir}"/>
                          <fileset dir="${project.lib.dir}">
                              <include name="*.jar"/>
                          </fileset>
                      </classpath>
                      <formatter type="xml"/>
                      <batchtest todir="${junit.report.dir}">
                          <fileset dir="${junit.src.dir}">
                              <include name="**/*Test.java"/>
                          </fileset>
                      </batchtest>
                  </junit>
              </target>
              
              <target name="junit-report" depends="junit-run" description="junit test case report">
                  <echo>生成單元測試報告</echo>
                  <junitreport todir="${junit.report.dir}">
                      <fileset dir="${junit.report.dir}">
                          <include name="**/*.xml"/>
                      </fileset>
                      <report format="frames" todir="${junit.report.dir}/html"/>
                  </junitreport>
                  
              </target>
              
              <target name="junit-doc" depends="junit-report" description="build javadoc">
                  <echo>生成junit-doc幫助文檔</echo>
                  <javadoc
                         destdir="${junit.doc.dir}"
                         author="true"
                         version="true"
                         use="true"
                         windowtitle="Junit Test API"
                         sourcepath="${junit.src.dir}">
                      <classpath>
                          <fileset dir="${project.lib.dir}">
                              <include name="*.jar"/>
                          </fileset>
                      </classpath>
                      <doctitle><![CDATA[<h1>Test</h1>]]></doctitle>
                      <bottom><![CDATA[<i>Copyright © 2012 Dummy Corp. All Rights Reserved.</i>]]></bottom>
                  </javadoc>
              </target>
              
              <target name="package" depends="api-doc" description="package">
                  <echo>使用jar打包編譯后的class文件</echo>
                  <jar destfile="${dist.dir}/${jar.prefix-name}-${jar.version}.jar" includes="**/*.class" basedir="${build.dir}">
                  </jar>
                  <echo>使用zip打包源碼</echo>
                  <zip destfile="${dist.dir}/${jar.prefix-name}-source.zip" basedir="${src.dir}">
                      <exclude name="**/*.class"/>
                  </zip>
                  <echo>使用zip打包javadoc</echo>
                  <zip destfile="${dist.dir}/${jar.prefix-name}-doc.zip" basedir="${doc.dir.api}">
                  </zip>
                  <echo>使用war打war包</echo>
                  <war destfile="${dist.dir}/${jar.prefix-name}.war" webxml="${basedir}/WebRoot/WEB-INF/web.xml">
                      <fileset dir="${basedir}/WebRoot">
                          <include name="**/*.*"/>
                      </fileset>
                      <!--
                      <lib dir="${basedir}/WebRoot/WEB-INF/lib"></lib>
                      <classes dir="${basedir}/WebRoot/WEB-INF/classes"></classes>
                      -->
                  </war>
              </target>
              
              <target name="junit-package" depends="junit-doc" description="junit-package">
                  <echo>打包</echo>
                  <echo>使用jar打包編譯后的class文件</echo>
                  <jar destfile="${dist.dir}/${jar.prefix-name}-${jar.version}.jar" includes="**/*.class" basedir="${build.dir}">
                  </jar>
                  <echo>使用zip打包源碼</echo>
                  <zip destfile="${dist.dir}/${jar.prefix-name}-source.zip" basedir="${src.dir}">
                      <exclude name="**/*.class"/>
                  </zip>
                  <echo>使用zip打包javadoc</echo>
                  <zip destfile="${dist.dir}/${jar.prefix-name}-doc.zip" basedir="${doc.dir.api}">
                  </zip>
                  <echo>使用war打war包</echo>
                  <war destfile="${dist.dir}/${jar.prefix-name}.war" webxml="${basedir}/WebRoot/WEB-INF/web.xml">
                      <fileset dir="${basedir}/WebRoot">
                          <include name="**/*.*"/>
                      </fileset>
                      <!--
                      <lib dir="${basedir}/WebRoot/WEB-INF/lib"></lib>
                      <classes dir="${basedir}/WebRoot/WEB-INF/classes"></classes>
                      -->
                  </war>
                  <echo>使用jar打junit單元測試編譯好的class文件</echo>
                  <jar destfile="${dist.dir}/${jar.prefix-name}-junit-${jar.version}.jar" includes="**/*.class" basedir="${junit.build.dir}">
                  </jar>
                  <echo>使用zip打junit單元測試源文件</echo>
                  <zip destfile="${dist.dir}/${jar.prefix-name}-junit-source.zip" basedir="${junit.src.dir}">
                      <exclude name="**/*.class"/>
                  </zip>
                  <echo>使用zip打junit單元測試測試報告</echo>
                  <zip destfile="${dist.dir}/junit-report.zip" basedir="${junit.report.dir}/html">
                  </zip>
              </target>
              
              
              
              <target name="clean">
                  <echo>清理項目</echo>
                  <delete dir="${build.dir}" includeemptydirs="true"></delete>
                  <delete dir="${doc.dir}" includeemptydirs="true"></delete>
                  <delete dir="${junit.dir}" includeemptydirs="true"></delete>
              </target>
              
              
              <target name="mail"  description="use java mail send mail message" depends="clean">
                  
                  <echo>將打包的文件email發送</echo>
                  <mail
                      mailhost="${mailhost}"
                      mailport="25"
                      subject="${mailsubject}"  
                      charset="utf-8"
                      user="${username}"
                      password="${password}"
                      >
                    <from address="${mailfrom}"/>
                    <to address="${mailto}"/>
                    <message>使用Ant自助構建項目測試打包文檔</message>
                    <attachments>
                      <fileset dir="${dist.dir}">
                        <include name="*.*"/>
                      </fileset>
                    </attachments>
                  </mail>
              </target>
              
              
              <target name="wget" depends="mail">
                  <echo>下載tomcat</echo>
                  <get dest="${tomcat.dir}" verbose="true">
                    <url url="${tomcat.download.url}"/>
                  </get>
              </target>
              
              
              <target name="unzip" depends="wget">
                  <echo>解壓tomcat</echo>
                  <unzip src="${tomcat.dir}/apache-tomcat-${tomcat.version}.zip" dest="${tomcat.dir}">
                  </unzip>
              </target>
              
              <target name="copy" depends="unzip">
                  <echo>拷貝war包到tomcat中部署</echo>
                   <copy file="${dist.dir}/${jar.prefix-name}.war" tofile="${tomcat.dir}/apache-tomcat-${tomcat.version}/webapps/${jar.prefix-name}.war"/>
              </target>
              
              <target name="startup" depends="copy">
                  <echo>啟動tomcat web容器</echo>
                  <exec executable="${tomcat.dir}/apache-tomcat-${tomcat.version}/bin/startup.bat">
                       <env key="CATALINA_HOME" path="${tomcat.dir}/apache-tomcat-${tomcat.version}/"/>
                  </exec>
              </target>
              
              
              <target name="run" depends="package,startup" description="不存在單元測試時執行的任務">
              </target>
              
              <target name="junitrun" depends="junit-package,startup" description="存在單元測試時執行的任務">
              </target>
              
              
              
              
          </project>
          構建控制臺日志
          init:
               [echo] 項目初始化設置
             [delete] Deleting directory D:\workspace\Ant1\classes
             [delete] Deleting directory D:\workspace\Ant1\dist
             [delete] Deleting directory D:\workspace\Ant1\doc
             [delete] Deleting directory D:\workspace\Ant1\junit
              [mkdir] Created dir: D:\workspace\Ant1\classes
              [mkdir] Created dir: D:\workspace\Ant1\dist
              [mkdir] Created dir: D:\workspace\Ant1\doc
              [mkdir] Created dir: D:\workspace\Ant1\junit\classes
              [mkdir] Created dir: D:\workspace\Ant1\junit\report
          compile:
               [echo] 編譯源碼
              [javac] Compiling 3 source files to D:\workspace\Ant1\classes
          junit-javac:
               [echo] 編譯junit
              [javac] Compiling 1 source file to D:\workspace\Ant1\junit\classes
          junit-run:
               [echo] 運行單元測試
              [junit] Running com.junit.test.OtherTest
              [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.027 sec
          junit-report:
               [echo] 生成單元測試報告
          [junitreport] Processing D:\workspace\Ant1\junit\report\TESTS-TestSuites.xml to C:\Users\scott\AppData\Local\Temp\null1056173236
          [junitreport] Loading stylesheet jar:file:/E:/apache-ant-1.8.4/lib/ant-junit.jar!/org/apache/tools/ant/taskdefs/optional/junit/xsl/junit-frames.xsl
          [junitreport] Transform time: 334ms
          [junitreport] Deleting: C:\Users\scott\AppData\Local\Temp\null1056173236
          doc:
               [echo] 生成幫助文檔
            [javadoc] Generating Javadoc
            [javadoc] Javadoc execution
            [javadoc] 正在創建目標目錄: "D:\workspace\Ant1\doc\api\"
            [javadoc] 正在裝入軟件包 com.ant.lesson1 的源文件...
            [javadoc] 正在構造 Javadoc 信息...
            [javadoc] 標準 Doclet 版本 1.6.0_25
            [javadoc] 正在構建所有軟件包和類的樹...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\Main.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\MyHttpServlet.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\SimpleTask.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\package-frame.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\package-summary.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\package-tree.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\constant-values.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\serialized-form.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\class-use\SimpleTask.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\class-use\MyHttpServlet.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\class-use\Main.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\package-use.html...
            [javadoc] 正在構建所有軟件包和類的索引...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\overview-tree.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\index-all.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\deprecated-list.html...
            [javadoc] 正在構建所有類的索引...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\allclasses-frame.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\allclasses-noframe.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\index.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\help-doc.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\stylesheet.css...
            [javadoc] Generating Javadoc
            [javadoc] Javadoc execution
            [javadoc] 正在創建目標目錄: "D:\workspace\Ant1\doc\api\junit\"
            [javadoc] 正在裝入軟件包 com.junit.test 的源文件...
            [javadoc] 正在構造 Javadoc 信息...
            [javadoc] 標準 Doclet 版本 1.6.0_25
            [javadoc] 正在構建所有軟件包和類的樹...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\OtherTest.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\package-frame.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\package-summary.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\package-tree.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\constant-values.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\class-use\OtherTest.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\package-use.html...
            [javadoc] 正在構建所有軟件包和類的索引...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\overview-tree.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\index-all.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\deprecated-list.html...
            [javadoc] 正在構建所有類的索引...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\allclasses-frame.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\allclasses-noframe.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\index.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\help-doc.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\stylesheet.css...
          package:
               [echo] 打包
                [jar] Building jar: D:\workspace\Ant1\dist\cms-1.0.jar
                [zip] Building zip: D:\workspace\Ant1\dist\cms-source.zip
                [zip] Building zip: D:\workspace\Ant1\dist\cms-doc.zip
                [jar] Building jar: D:\workspace\Ant1\dist\cms-junit-1.0.jar
                [zip] Building zip: D:\workspace\Ant1\dist\cms-junit-source.zip
                [zip] Building zip: D:\workspace\Ant1\dist\junit-report.zip
                [war] Building war: D:\workspace\Ant1\dist\cms.war
          clean:
               [echo] 清理項目
             [delete] Deleting directory D:\workspace\Ant1\classes
             [delete] Deleting directory D:\workspace\Ant1\doc
             [delete] Deleting directory D:\workspace\Ant1\junit
          mail:
               [echo] 將打包的文件email發送
               [mail] Sending email: Test build
          最終編譯后的目錄為
          posted on 2012-09-05 16:26 雪山飛鵠 閱讀(2798) 評論(0)  編輯  收藏 所屬分類: javaseother
          主站蜘蛛池模板: 洛南县| 花莲市| 黑龙江省| 观塘区| 班戈县| 洪洞县| 南召县| 沁源县| 满洲里市| 琼结县| 同心县| 高青县| 曲松县| 德兴市| 易门县| 白银市| 读书| 阳泉市| 河北省| 蓝山县| 大英县| 尼木县| 南京市| 肥东县| 奉贤区| 曲周县| 襄樊市| 新乡市| 金湖县| 宁安市| 宁晋县| 桃源县| 卢湾区| 台北县| 定陶县| 融水| 潼南县| 上饶县| 武平县| 罗城| 黔东|