Ant能干什么,编译?打包!
Ant轻便,灵巧,不像Maven一般沉重。
但是,这是我之前的看法。之前一直使用Eclipse自带的编译工具进行编译,然后采用ant进行打包;但是Eclipse编译工具编译之后的jar包参数名称之类的都丢失了,变成了arg0,arg1这种;对于引用方而言十分不友好(当然可以导出javadoc,但是那不是费二遍事嘛),最近获知可以通过采用javac进行编译,指定-g:vars,即可保证编译之后参数名称保留。
于是尝试着将javac加入到Ant文件中,其实直到此时我才知道eclipse是自带编译器的,因为网上有帖子讲述分析eclipse的编译器的class文件和javac编译文件不同,细节没看,确定一点,这两者应该不是一回事。但是我添加了javac之后,运行builder.xml发现报错,告知slf4.jar没有。
直到此时我才清晰的了解到:我们采用Eclipse那套机制,包括工程引用,jar包引用以及Eclipse自带的编译器,这些是成套的东东,如果你想要使用Ant来进行编译,那么需要你将所有的引用关系,以及引用jar包关系,全部配置到Ant配置文件里面,这样Eclipse退化为了一个代码结构管理(当然还包括JIT编译找错)的小工具。
如果这样我还是使用Eclipse来进行管理和编译吧,采用Ant编译成本太高了,他还是做做打包这件事我觉得是最好的。
声明变量
<project>
<property name="dir.buildfile" value="."/>
<property name="dir.workspace" value="${dir.buildfile}/.."/>
<property name="dir.jarfile" value="D:/tmp/setup"/>
"."代表(Eclipse)工程根目录
复制文件夹
<copy todir="${dir.jarfile}">
<fileset dir="${dir.buildfile}">
<include name="install/"/>
<include name="install_monitor/"/>
<include name="scripts/"/>
</fileset>
</copy>
这里注意install/代表把文件夹以及文件夹里面的东西都拷贝过去;install则代表只是拷贝空文件夹;如果没有include节点,代表把${dir.buildfile}所有的文件拷贝到todir下面。
posted on 2017-02-05 17:25 张叫兽的技术研究院 阅读(2183) 评论(0) 编辑 收藏 举报