使用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
?
?
?
?