? ? 之前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,一保存就生效,调试起来还是比较爽,关键是新切分支也不用做一堆同步设置了。