使用Ant部署项目细节问题及解决办法

说原创也谈不上,是个人在使用Ant的过程中遇到的问题及解决办法,收录一下。
最近由IDE慢慢的向Ant转移,开始是不习惯。不过用着用着感觉还不错。之前一直用的Intellij Idea,什么都好,就两个不好,内存占用大,部署效率低(不像eclipse那样,ctrl+s,就自动编译,然后tomcat就自动部署了)。这也是我用Ant的理由,算是填补Intellij Idea的不足吧,还有junit的编写,现在又想写junid的冲动(虽然还没写多少 :wink: )。之间遇到了一些问题,还是google强大啊,不过还是搜了半天,再加上自己的尝试,终于都解决了。

其中主要就是部署。
一开始我的部署方式是。
1.使用Ant启动tomcat。
2.编译.
3.拷贝需要的文件到指定的目录
4.打包war包
5.将war包部署到tomcat中
tomcat不需要重新启动。不过。。。。每次重新部署都需要将近30秒,受不了。
此处需要一个注意点,就是context的设置,在项目的web根目录下(即和WEB-INF同级的目录)新建一个META-INF目录,接着在此目录下新建一个context.xml文件。其内输入如下内容。

<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true" antiResourceLocking="true" antiJARLocking="true"></Context>

原因是,如果没有这一段内容,tomcat会加载你部署的项目,而不过有些jar被加载了,那么当你undeploy的时候就无法成功了,必须要关闭tomcat,手动删除项目,这显然很郁闷。
加了如上内容,tomcat就会拷贝此项目到临时文件夹内,去加载那个拷贝,那么这样当前的目录就可以自由的重新部署了。
缺点也说了,效率太低。

做了如下改进。
1.为你的项目指定一个虚拟目录,指向上面第三步里面的那个目录
指定虚拟目录的方法。
(1)在tomcat/conf/server.xml中,<Host>里面创建一个<Context>。

<Context path="/浏览器里面的访问根路径" docBase="项目路径" reloadable="true" ></Context>

或者在tomcat\conf\Catalina\localhost目录下新建一个 项目名称.xml文件,输入

<Context docBase="项目路径" reloadable="true" ></Context>

这里就不需要path了,文件名就是访问名称。此方法有个缺点,就是不能删除你的那个项目目录,如果删除了,tomcat会删除这个xml文件的。所以我选择了第一种方法。
此处的\Catalina\localhost,是在server.xml设定的<Engine>名和<Host>名,可以在server.xml里面找到。
这里也没有上面的antiResourceLocking="true" antiJARLocking="true"了,我尝试了n遍,如果加上了这两个属性,那么你修改类的时候不会重新加载的。

这样,当你修改了类或文件后,只需要编译,拷贝,稍等片刻,tomcat就会自动部署了。编译,拷贝时间5秒左右,Ant一执行完,tomcat就基本重部署完了,比上面的30秒快了不少。 :D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值