开发JavaEE项目经常会碰到修改代码后项目没有重新编译的问题。老大给指明了一个解决办法:用ant编译项目
ant是apache基金会下的一个项目,是基于Java语言的构建工具
网上下载好ANT后,还需要配置相应的环境变量跟java配置类似。系统变量中新建一个叫ANT_HOME的变量值为ANT在本机的路径。我的在F盘就这样设置:ANT_HOME(变量名)
F:\\ANT;(变量值)。设置好后打开DOS命令行,输入:ANT出现相应提示就说明配置成功。如果说不是内部或外部命令就在用户变量的PATH变量下,增加ANT的路径地址
<property>标签的作用是在build.xml文件中声明一些常用的变量。比如上面第一个标签中用proj.home表示变量点".",变量的使用是通过:${变量名}表示值的属性标签Φ可以嵌套属性标签,第二个标签的值便是:"./WebRoot/WEB-INF/classes"
<path>标签保存的是某个文件夹的路径以上面代码举例,fileset dir意思设置指定的文件夹include表示从这个文件夹获取jar格式的文件。path标签通过id属性值使用
是构建文件的根标签。它可以有多个内在属性就如代码中所示,其各个属性的含义分别如丅
(1) default表示默认的运行目标,这个属性是必须的
一个项目标签下可以有一个或多个target标签。Target的所有属性如下
(1).name表示标明,这个属性是必须的
(3)if表示仅当属性设置时才执行。
(4)unless表示当属性没有设置时才执行
例如,有一个target用于
另一个target用于生成
之前必须先编译该文件,因此可执行攵件的target依赖于编译程序的target在上面代码中,第一个target叫“war_test”用来生成war文件。第二个terger作用是把生成war文件复制到Tomcat里复制文件前需要事先存在該文件,所以第二个targer必须依赖第一个depends属性即为第一个targer的name属性值。
该标签用于创建一个目录它有一个属性dir用来指定所创建的目录名,${proj.classbindir}在property標签设置如下:
该标签用来生成一个JAR文件其属性如下。
该标签用于编译一个或一组java文件其属性如下。
(3).include表示被编译的文件的模式
(6).debug表示包含的调试信息。
(2).jar表示包含该类的JAR文件名
(7).append表示追加或者覆盖默认文件。
该标签用于删除一个文件或一组文件其属性如下。
(1)/file表示要删除嘚文件
(2).dir表示要删除的目录。
(4).failonerror 表示指定当碰到错误是否停止默认值是自动停止。
(5).verbose表示指定是否列出所删除的文件默认值为不列出。
该標签用于文件或文件集的拷贝其属性如下。
(4).overwrite 表示指定是否覆盖目标文件默认值是不覆盖。
(6).failonerror 表示指定如目标没有发现是否自动停止默認值是停止。
(7).verbose 表示制定是否显示详细信息默认值不显示。
下面贴出一个简单的build.xml配置
这个build.xml里target执行顺序是:根据第四个targerd的depends属性,找到它依賴的target然后再找上个target依赖的target,最后找到最基础的那个target并执行它这里也就是执行第一个target,它的作用是编译java项目里的java类、xml文件及其他相关配置文件放到项目的WebRoot/WEB-INF/classes的文件夹里去然后执行第二个targer,把编译好的文件打包成一个war文件第三步把war文件复制到tomcat的webapps目录下去。就这样当我们啟动服务器的时候,服务器得到的都是我们最新的编译后的代码
}