閱讀327 返回首頁    go 阿裏雲 go 技術社區[雲棲]


ant的高級使用,ant命令詳解,ant打包,ant編譯後打包去掉jar文件

在日常的項目開發中,我們可以經常性的需要打包測試,尤其是開發環境是windows,而實際環境則是linux。
這樣的話,很多程序員要一會打一個包,一會打一個包,這些包可能會很大,實際上隻有代碼部分會變動,而jar包基本則不動。
當然很多人可能會說,自動化測試。很好的,我們今天要做的就是自動化測試的第一步。
這個時候我是可以使用ant來打包,去掉項目中的所有的jar文件。然後在項目的tomcat啟動時到特定的地點去加載jar文件。

這樣做,war包可能會隻有幾M,什麼更小。具體如何動態的加載jar文件,我們在下一章講解,這一章,我們先來看ant打包的build.xml配置。

看源代碼:

<?xml version="1.0" encoding="UTF-8" ?>
<project name="nojar" default="deleteClasses" basedir=".">
	<property name="classes" value="build/classes" />
	<property name="build" value="build" />
	<property name="lib" value="WebRoot/WEB-INF/lib" />
	<path >
		<fileset dir="${lib}">
			<include name="*.jar" />
		</fileset>
	</path>
	
	<!-- 刪除build路徑-->
	<target name="deleteBuild">
		<delete dir="build" />
		<copy todir="${classes}/com/herman/config">
			<fileset dir="${basedir}/src/com/herman/config">
				<include name="*" />
			</fileset>
		</copy>
	</target>

	<!-- 建立build/classes路徑,並編譯class文件到build/classes路徑下-->
	<target name="compile" depends="deleteBuild">
		<mkdir dir="${classes}" />
		<javac srcdir="src" destdir="${classes}" includeantruntime="on" encoding="utf-8">
			<classpath ref />
		</javac>
	</target>

	<!-- 打war包-->
	<target name="war" depends="compile">
		<war war webxml="WebRoot/WEB-INF/web.xml" encoding="utf-8">   
			<!-- 拷貝WebRoot下除了WEB-INF和META-INF的兩個文件夾-->
			<fileset dir="WebRoot" includes="**/*.jsp"></fileset>
			<!--<fileset dir="WebRoot" includes="**/*.*" excludes="META-INF,WEB-INF"/>-->
			<!-- 拷貝lib目錄下的jar包-->
			<!--<lib dir="${lib}" />-->
			<!-- 拷貝build/classes下的class文件-->
			<classes dir="${classes}" />
        </war>    
	</target>
	
	<!-- 刪除build/下的classes下的字節碼文件,減少war包的總大小-->
	<target name="deleteClasses" depends="war">
		<!--<delete dir="${classes}"></delete>-->
	</target>
</project>
是不是很簡單,好吧,如果你認為本文還可以,請關注我的個人博客!

或者加入QQ群:135430763共同學習!

最後更新:2017-04-03 05:38:54

  上一篇:go Swift構造器(Initializer)與析構器(Deinitializer)
  下一篇:go puppet 利用 facter, 實現不同主機調用不同變量方法