eclipse下如何热部署Web应用

    之前Eclipse调试Web应用时用FileSync同步vm及class文件,不过那样每次下载新的分支都要设定一次,很不方便。最近在做页面,想想肯定有更简单的办法可以解决。


    首先了解下原来本机部署的工程为何不会自动同步,下图是简化过的JBOSS部署启动时序图:


    eclipse插件默认是将应用打war包并移动部署,在JBOSS启动时会再复制war包并解包至JBOSS的tmp目录(避免与deploy目录下的应用冲突)。

    这样我们在本地修改vm文件后,也只会同步到第一个war包,velocity真正读取的文件并不会变化。


    通过代码可以看到,如果不做压缩直接deploy应用文件夹,则不需要做后续的复制解包操作,部署文件与读取的文件相同,问题也就解决了,同时部署也会快很多。


    有两种办法可以热部署文件夹:

    1.通过日志发现build文件是jboss323.xml,修改该文件中关于"deploy.j2ee.web"的配置内容如下(即将打包改为复制文件夹):


<target name="deploy.j2ee.web">
	<property name="deploy.dir" location="${server.publish.dir}/${module.name}.war" />
        <mkdir dir="${server.publish.dir}/${module.name}.war" />
        <copy todir="${server.publish.dir}/${module.name}.war">
            <fileset dir="${module.dir}">
                <include name="**/*.*"/>
                <exclude name="**/*.war"/>
            </fileset>
        </copy>
</target>



    2.下载安装新的JBOSS Server:JBossAS Tools

    操作:在window->Perferences->Server->Runtime environments->Add...,在新的列表中选择JBossAS Tools

  
    

    安装后新建server,并将部署设置为按目录部署


    

  另外,JBOSS对于是否解压,是否放到临时目录提供了MBean管理,也可以通过配置文件修改,不过那样也会引来新的问题,不如安装新Server来得方便。

   整完后,不管代码还是vm,一保存就生效,调试起来还是比较爽,关键是新切分支也不用做一堆同步设置了。

猜你喜欢

转载自bingobird.iteye.com/blog/1739533