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