用惯了VS,再用Eclipse,完全有一种从自动挡到手动挡的感觉啊。
很多同学在Eclipse下开发web项目,每一次修改代码,看效果的时候都有右键项目->Run as -> Run on server,然后慢吞吞的打开Eclipse的内建浏览器,显示如下一个界面,让人看起来分外忧郁!
在网上查了一圈,其它的方式基本都在教大家将项目发布到tomcat目录的webapp目录下,虽然比默认方式要好些,但是http://localhost:8080/InskyScheduleCenter/之类的url真让人蛋疼,好好的一个项目被作为一个目录存在,如果一些页面资源文件还是用的相对路径方式来写,那调整页面的显示更让人火大,有没有一种简单的部署方式呢,就像VS里一样,选择publish,文件就自动一个个copy到指定目录,然后在浏览器中敲起url就访问呢,网上找了一圈,实在没找到,我自己捣鼓了一下午,终于找到了方法,特此分享给大家。
下边我们来一步步开始:
- Tomcat配置
打开你的tomcat目录下的confserver.xml文件,首先添加自己本地的虚拟站点,呃,直接抢80端口,用起来方便。
Server.xml中本来默认存在一个service节点,照着copy一份,放到原service节点之下。
<Service name="ScheduleCenter"> <Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/> <Connector port="18580" protocol="AJP/1.3" redirectPort="8443"/>
<Engine defaultHost="www.ScheduleCenter.com" name="ScheduleCenter">
<Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm>
<Host appBase="webapps" autoDeploy="true" name="www.ScheduleCenter.com" unpackWARs="true"> <Alias>www.ScheduleCenter.com</Alias> <Context docBase="E:publish omcatwtpwebappsInskyScheduleCenter" path="" reloadable="true"/> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>
</Host> </Engine> </Service> |
按如上的配置,监听80端口,然后配置域名映射www.ScheduleCenter.com ,将这个网站的目录指向E:publish omcatwtpwebappsInskyScheduleCenter。具体tomcat的站点配置可以另写一篇文章了,有兴趣的同学可以去查其它资料,这里就不跑题扯远了。
- Eclipse配置
首先我们已经有一个javaweb网站了,至于网站怎么写,我们这里也不关注。
在项目上右键->Run as -> Run on server,按照老方式搞一个tomcat服务器,也没啥说的,注意服务器版本jre什么的版本选对。
然后Finish,这个server就可以了,这是大家都熟悉的eclipse默认run站点配置。
下边,我们来做一些改变,在这个server run起来的情况下,打开server面板。
点击下边那个InskyScheduleCenter,右键remove,然后在上边的localhost(2)上,邮件,选择open,弹出如下对话框:
注意,如果此时下边的那个InskyScheduleCenter没被remove,或者server没有处于start的状态,这个面板的所有选项都是灰色,不可操作。
此时注意,选择图中红框所示的单选框,表示将项目发布自己指定的目录下,在下边的两个文本框中,分别填入server的路径和部署目录,如图所示,做完操作后,ctrl + s保存。
然后再在项目上右键->Run as -> Run on server,ok,此时可以看到项目已经被发布到E:publish omcatwtpwebapps目录。
如果有时候发布目录点进去发现缺少文件啥的,可以先在server面板先选择clean,再选择publish即可。
之后,我们在eclipse中更改代码,站点的状态就会变成RePublish,如果设置了自动同步,那它会很快变成Synchronnized,如果没自动同步,手工右键选择publish就能将代码重新部署到我们的E:publish omcatwtpwebapps目录中。
127.0.0.1 www.ScheduleCenter.com
- 访问浏览器
关掉eclipse中的tomcat服务,启动tomcat服务,我是用的xampp
跑起来后,在浏览器中键入url,即可访问网站。
此时,我们只要在eclipse中的代码有所更改,只需要在【服务】面板的server上,看到站点的状态是RePublish,右键选择publish即可将更新的代码部署到站点,然后刷新网页即可看见最新的改动。