使用ant過程所遇問題總結

1、fileSet中目錄/文件的用法:

若是“appgen”,則只會拷貝名爲appgen的空目錄過去,它裏面的文件和子目錄則不會拷貝。 
若是“appgen/”,或“appgen/**”,則會把整個appgen目錄拷貝過去,包括裏面的文件和子目錄。 
若是“appgen/*”,則只會把該目錄和該目錄下第一級子目錄的所有東西拷貝過去,而不會拷貝第二級和第二級以下的。注:“appgen/*”這兒是一個*號,*號若大於兩個,也跟一個*號是同樣效果。比如“appgen/*”和“appgen/****”都只拷貝appgen目錄下第一級子目錄。 

 

注:若appeng這個目錄本身就是個空目錄,無論怎麼寫,這個空目錄都不會被拷貝。也就是說,copy操作不會產生創建空目錄的作用,要想創建空目錄,只有用mkdir。 

參考:http://chenjia66804610.iteye.com/blog/421370

 

2、build.xml中獲取jar包列表,通常用於在MANIFEST.MF中標明classpath。

 

		<pathconvert property="libs.project" pathsep=" ">
			<mapper>
				<chainedmapper>
					<flattenmapper />
					<globmapper from="*" to="lib/*" />
				</chainedmapper>
			</mapper>
			<path>
				<fileset dir="lib">
					<include name="**/*.jar" />
				</fileset>
			</path>
		</pathconvert>

 

 調用時

 <attribute name="Class-Path" value="${libs.project}" />

參考:《HOWTO Create MANIFEST.MF Classpath From Ant》http://martin.ankerl.com/2005/11/30/howto-create-manifestmf-classpath-from-ant/#

 

3、編譯java時出現“需要爲 class、interface 或 enum”

     通常是編譯時採用的編碼和代碼本身的編碼不符,編譯時指定編碼編譯即可解決。javac -encoding utf8 *.java

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章