1. 程式人生 > >用ant自動打增量包,全量包,打jar包

用ant自動打增量包,全量包,打jar包

     build.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<project name="eShop" default="release" basedir=".">
	<!-- .代表當前專案所在目錄即 F:\projects\eShop\ ,以下所有目錄都是相對於它的-->

	<!--專案打包後的目標位置-->
	<property name="createTarget" value="target" />
	<property name="target" value="target/eShop" />

	<!--java 原始檔目錄 -->
	<property name="srcDir" value="src" />
	<!--java 編譯後class檔案目錄 -->
	<property name="buildDir" value="WebRoot/WEB-INF/classes" />

	<!-- jar包檔名 -->
	<property name="jarFileName" value="test.jar" />
	<!-- jar包存放位置-->
	<property name="jarFileLocation" value="target/eShop/WEB-INF/lib" />

	<!--初始化目錄-->
	<target name="init" depends="clean">
		<!--		<delete file="${jarFileLocation}/${jarFileName}" />-->
		<mkdir dir="${buildDir}" />
		<mkdir dir="${jarFileLocation}" />
	</target>

	<!--清除打包目錄-->
	<target name="clean">
		<!-- target 的name命名無關緊要,主要是裡面的delete,mkdir,copy 等才是它執行的核心,當然為了易懂,命令還是清晰點 -->
		<delete dir="${createTarget}" />
	</target>

	<!-- 建立時間戳 -->
	<tstamp />

	<!-- 編譯java檔案到classes目錄下-->
	<target name="compile" depends="init">
		<javac srcdir="${srcDir}" destdir="${buildDir}" includeantruntime="true" />

		<!-- classpath 定義編譯需要的claspath,編譯src目錄下的java可能引用了其他的jar檔案,要不然會報錯 
		<classpath>
			<fileset dir="lib">
				<include name="*.jar" />
			</fileset>
			<fileset dir="lib2">
				<include name="*.jar" />
			</fileset>
			<fileset dir=".">
				<include name="${androidjar}" />
			</fileset>
		</classpath>-->
	</target>

	<!-- 生成jar包 -->
	<target name="makeJar" depends="compile">
		<jar jarfile="${jarFileLocation}/${jarFileName}" basedir="${buildDir}" excludes="" />

		<!--定義jar檔案執行的主類,一般為main方法的類
		<manifest>
		<attribute name="Main-Class" value="demo.SayHello" />
		<attribute name="Class-Path" value="${libs}">
		</attribute>
	</manifest>-->
	</target>

	<!--執行一下jar包,試試看效果-->
	<target name="run" depends="makeJar">
		<!--其實這裡就是執行jar命令,注意fork一定加上,不然不起作用-->
		<java jar="${jarFileLocation}/${jarFileName}" fork="true">
		</java>
	</target>

	<!-- 預設操作,釋出-->
	<target name="release" depends="makeJar">
		<copy todir="${target}">

			<!-- 只是包含目錄和檔案,不包含目錄下的檔案,**包含檔案及資料夾下的所有檔案 -->
			<fileset dir="WebRoot">
				<include name="WEB-INF/customization/**" />
				<include name="WEB-INF/jsp/**" />
				<include name="resources/**" />
				<include name="js/**" />
				<include name="fusioncharts.jsp" />
				<include name="header.jsp" />
				<include name="highcharts.jsp" />
			</fileset>
		</copy>

	</target>
</project>

  本機執行結果:

Buildfile: F:\projects\eShop\build.xml
clean:
   [delete] Deleting directory F:\projects\eShop\target
init:
    [mkdir] Created dir: F:\projects\eShop\target\eShop\WEB-INF\lib
compile:
makeJar:
      [jar] Building jar: F:\projects\eShop\target\eShop\WEB-INF\lib\test.jar
release:
     [copy] Copying 611 files to F:\projects\eShop\target\eShop
BUILD SUCCESSFUL
Total time: 2 seconds