Ant初使用
来源:互联网 发布:iphone移动数据不能用 编辑:程序博客网 时间:2024/04/30 01:36
ant 官网:http://ant.apache.org/
1.下载解压,不叙...... 下载bin: apache-ant-1.9.1-bin.zip 不是src:: apache-ant-1.9.1-src.zip
2.配置环境变量:
ANT_HOME:解压的文件目录
PATH:将ANT命令加入path ..........%ANT_HOME%\bin;
JAVA_HOME: 必须的!
cmd下验证:ant -version
3.创建示例:
示例说明:将一个pojo转为json输出,json需要的jar包:
commons-beanutils-1.7.0.jar
commons-lang-2.1.jar
ezmorph-1.0.2.jar
json-lib-1.1-jdk15.jar
commons-collections-3.2.1
还需要commons-logging剩下的自己看提示添加
4.eclipse下演示:
新建立build.xml,注意:没有xml的头部声明!!
<!--project元素。name属性指定工程的名称,default属性 指定ant默认执行的target,即不指定要执行的target时,ant执行的target。basedir指定本工程的基准目录,这里指定为 当前目录。 --><project name="AntDemo" default="compile" basedir="."><!--property元素,定义了两个元素,供后面以${元素名}的形式引用。 --><property name="targetdir" value="classes" /><property name="srcdir" value="src" /><!--定义一个path元素,指定id属性,供后面引用 --><path id="library" ><!--定义一个fileset元素,用于指定需要用到的文件。dir属性指定哪个目录下的文件。 --><fileset dir="lib"><!--指定包含lib目录下的所有jar包 --><include name="*.jar"/></fileset></path><!--定义一个target元素,name属性为必须,用于标识此target。description属性用于描述此target,无太大意义。depends属性指定执行此target,所依赖的其他target。这里指定为了运行compile这个target,需首先执行clean,copy-resources这两个target。 --><target name="compile" description="Compiles the Task" depends="clean"><!--javac是ant的核心任务(task),用于编译JAVA源程序。srcdir属性指定源程序所在的目录,${srcdir}表明引用上面定义的名为srcdir的property元素的值。destdir指定编译后生成的.class文件的输出目录。同样地,这里使用了${targetdir}的形式引用了上面定义的名为targetdir的property元素的值。classpathref表明引用上面定义的id为library的path元素。在这里,即可把它包含的.jar包加载到classpath中,而不需要像笔者以前那样自己手动运行setclasspath命令。 --> <javac srcdir="${srcdir}" destdir="${targetdir}" classpathref="library" includeantruntime="no"/> </target> <!--定义一个名为clean的target。 --><target name="clean"><!--delete是ant的一个核心任务,用于删除目录或文 件。这里用来删除classes目录。即先把以前创建的classes目录删除,免得旧文件造成干扰 --><delete dir="${targetdir}"/><!--mkdir也是一核心任务,用于创建目录。这里用来 新创建classes目录 --><mkdir dir="${targetdir}"/></target><target name="copy-resources"><!--copy也是ant的一个核心任务,用于复制目录或文 件。todir指定复制的目标目录。本示例未使用此任务 --><copyto dir="${targetdir}"><!--fileset元素指定要复制的文件集,dir属性指定复制的源目录,exclude元素指定排除此目录下的所有java源文件,即复制除这些文件之外的所有文件 --><fileset dir="${srcdir}"><exclude name="**/*.java"/></fileset></copyto></target><!--depends属性指定运行此target应先运行名为compile的target --><target name="run" depends="compile"><!--java是ant的核心任务,用于执行某个java类。classname属性用于指定要运行的类,这里要用到类的全名fork设为true表明使用另外的JVM来运行我们的JAVA类,而不是使用运行ant的那个JVM。classpathref与上面的javac里的一样--><java fork="true" classname="abc.test.AntDemo" classpathref="library"><!--将classes目录加载到classpath中--><classpath path="${targetdir}"/></java></target></project>
Student类:
package abc.test;public class Student {private String name;private String sex;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
主函数:
package abc.test;import net.sf.json.JSONObject;public class AntDemo {/** * @param args */public static void main(String[] args) { { Student user = new Student(); user.setName("General Patton"); user.setAge(60); user.setSex("F"); JSONObject json = JSONObject.fromObject(user); System.out.println(json.toString()); } }}
为什么需要Ant?
jbuilder,eclipse都可以完成自动部署,为什么还需要ant?
一下摘字网络:
我个人的理解如下,不知道对不对:
1:ANT 的平台无关性,适合在 windows 和 UNIX 多种平台使用
2:ANT 的编译,打包和部署比较清晰,比 IDE 的隐藏性处理更容易理解和学习
___________________________________________________________________________________
根据我自己的经验,Eclipse和Ant是相辅相成的,Eclipse作为一个IDE是为了加快开发速度,而不应该作为编译和部署的工具。
通常一个J2EE项目,少则5,6个,多则几十个开发者用Eclipse开发,而每个人在Eclipse中的设置都不可能完全一样。等你要部署这个项目的时候,诸多问题,比如类库的路径设置,项目之间的相互关联,就会逐一出现。
而用ANT就不会出现这些问题,用ANT编译,打包,发布可以保证一个项目在任何一个平台下都可以部署。ANT还允许在build.properties中设置参数,可以控制如何读取系统环境,如何寻找需要的类库等。 反过来说,如果你要部署你的项目到一个新的服务器上,你总不置于去吧Eclipse安上去,再在Eclipse中设置路径等参数吧?
而且Ant的功能远不止这些,需要学的太多。
__________________________________________________________________________________________________
看看ant document中怎么写的,Why another build tool when there is already make, gnumake, nmake, jam, and others?
跨平台、基于java、XML,另外通过自己定义user ant,你可以作任何想作的事情
___________________________________________________________________________________________________
Ant能完成编译,部署一套动作~ 而且是跨平台...
没ANT时代, windows下部署要写.bat文件, unix下要写gmake, 但现在只要写XML形式的ANT...(把ANT原版文档翻译过来,就是这个意思~)
要学ANT的XML语法,我觉得大没必要~ 因为越来越多的工具支持自动书写ANT XML, 你只要轻松的在IDE GUI上点点就行拉~~ HOHO...
___________________________________________________________________________________________________
其实Ant的好处就是帮助弄清楚你这个工程是怎么生成的逻辑,否则用eclipse这种工具,很容易忽视一些小地方。一切太智能化,只能说对你的帮助不大,也许你会做的也就是敲几行代码了。
熟悉介绍:
failonerror 默认为true,<delete dir="${build.dir}" failonerror="false" /> 构建失败还可继续执行
eclipse 的ant插件默认执行缺省
参考文章:
http://legend2011.blog.51cto.com/3018495/898736 ant入门示例——mybatis学习笔记之预备篇(二)
http://www.paramiao.com/?p=115 浅谈Ant编译
http://www.blogjava.net/pzxsheng/archive/2012/04/11/373816.html 利用 Ant 和 Eclipse 有效地提高部署工作效率
http://blog.csdn.net/hbcui1984/article/details/1954537 使用Ant发布web应用到tomcat
http://www.cnblogs.com/wufengxyz/archive/2011/11/24/2261797.html Java Ant build.xml详解
- Ant初使用
- Ant脚本初使用
- ANT使用
- 使用ANT
- Ant使用
- Ant使用
- ANT使用
- ant 使用
- ant使用
- Ant 使用
- ant使用
- 使用ANT
- Ant使用
- ANT使用
- Ant使用
- Ant 使用
- ant 使用
- ant 使用
- OGG 01008 Extract displays Discarding bad record (discard recs=1) when using filter or where clause
- 如何学会600多种编程语言
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 每天一点ruby
- 解决 Linux 一定时间后自动关闭LCD
- Ant初使用
- SQLite在多线程环境下的应用
- intptr_t 其实不是指针类型
- ymPrompt消息提示组件4.0版
- sql语法:inner join on, left join on, right join on详细使用方法
- 大学生毕业需要注意到事情,报到证,党组织关系
- Design My Virtual Home之高质量CSS代码建议
- 单点登陆
- 用户登录拦截器