转自:http://blog.csdn.net/yukunzgp/archive/2008/02/27/2124065.aspx
大家在Liferay的二次开发的过程中,可能都觉得部署起来太麻烦,都需要ant deploy,然后重新启动Tomcat才能生效。特别是连修改JSP都需要这么做。
做了一个简单的尝试,在一定程度上解决自动部署的问题。利用的是Eclipse的Builder机制。因为没有花多少时间,所以适应性也就比较差,只适用于Tomcat服务器。大家可以简单修改一下,以适应其他服务器。
11.1 写XML文件
在ext根目录下,创建一个XML文件liferay-ext-increament-deploy.xml。内容为:
<?xml version="1.0" encoding="UTF-8"?>
<project name="LiferayExtIncreamentDeploy" default="depoy" basedir=".">
<property file="app.server.${user.name}.properties" />
<target name="depoy" description="Increament Deploy Ext to Tomcat">
<copy todir="${app.server.tomcat.dir}/webapps/ROOT"
includeEmptyDirs="false">
<fileset dir="ext-web/docroot" />
</copy>
<copy todir="${app.server.tomcat.dir}/webapps/ROOT/WEB-INF/classes"
includeEmptyDirs="false">
<fileset dir="output" />
</copy>
</target>
</project>
11.2 为ext项目添加builder
1、 在ext项目上右键单击,选择Properties
2、 弹出窗口中,选中“Builders”
3、 右边窗口中,缺省有“Java Bulder”存在。单击“New…”按钮,并选择“Ant Build”
4、 在弹出窗口中,Name框输入LiferayExtIncreamentDeploy
5、 Main这个Tab中
Buildfile输入${workspace_loc:/ext/liferay-ext-increament-deploy.xml}
Base Directory输入${workspace_loc:/ext}
6、 在Targets Tab中,Auto Bulder选择”deploy”任务
7、 在Build Options Tab中,选中 “Specify working set of relevant resources”,并单击“Specify Resources…“,在弹出窗口中选中 ext\ext-ejb\src 和 ext\ext-web\docroot\html这两个目录。
8、 如果不想每次看到deploy过程,可以取消选中”Allocate Console”
然后确认即可。
11.3 一些局限性
因为这是一个很简单的解决方法,难免会有很大的局限性。他最适用的情形是:代码调试,因为这时候需要不断做一些细节修改,而不用大规模动手术。
该方案能够解决的问题就是:ext环境中,jsp和java文件修改后,能自动更新到tomcat里面。JSP的改动能够立即生效,java文件,简单修改,不涉及到添加删除方法等,一般也能立即生效。
通过设置可以看到,只是监控了jsp和java文件的修改,如果修改了其他文件,则需要重新ant deploy并重启Tomcat。
另外,启动Tomcat之前,最好想办法让这个deploy执行一次,目的就是确保class文件拷贝到WEB-INF/classes下面了,否则,Tomcat启动后再拷贝这些class文件,会导致Tomcat需要重启。
如果大家有什么完善的方法,记得要告诉我。
大家在Liferay的二次开发的过程中,可能都觉得部署起来太麻烦,都需要ant deploy,然后重新启动Tomcat才能生效。特别是连修改JSP都需要这么做。
做了一个简单的尝试,在一定程度上解决自动部署的问题。利用的是Eclipse的Builder机制。因为没有花多少时间,所以适应性也就比较差,只适用于Tomcat服务器。大家可以简单修改一下,以适应其他服务器。
11.1 写XML文件
在ext根目录下,创建一个XML文件liferay-ext-increament-deploy.xml。内容为:
<?xml version="1.0" encoding="UTF-8"?>
<project name="LiferayExtIncreamentDeploy" default="depoy" basedir=".">
<property file="app.server.${user.name}.properties" />
<target name="depoy" description="Increament Deploy Ext to Tomcat">
<copy todir="${app.server.tomcat.dir}/webapps/ROOT"
includeEmptyDirs="false">
<fileset dir="ext-web/docroot" />
</copy>
<copy todir="${app.server.tomcat.dir}/webapps/ROOT/WEB-INF/classes"
includeEmptyDirs="false">
<fileset dir="output" />
</copy>
</target>
</project>
11.2 为ext项目添加builder
1、 在ext项目上右键单击,选择Properties
2、 弹出窗口中,选中“Builders”
3、 右边窗口中,缺省有“Java Bulder”存在。单击“New…”按钮,并选择“Ant Build”
4、 在弹出窗口中,Name框输入LiferayExtIncreamentDeploy
5、 Main这个Tab中
Buildfile输入${workspace_loc:/ext/liferay-ext-increament-deploy.xml}
Base Directory输入${workspace_loc:/ext}
6、 在Targets Tab中,Auto Bulder选择”deploy”任务
7、 在Build Options Tab中,选中 “Specify working set of relevant resources”,并单击“Specify Resources…“,在弹出窗口中选中 ext\ext-ejb\src 和 ext\ext-web\docroot\html这两个目录。
8、 如果不想每次看到deploy过程,可以取消选中”Allocate Console”
然后确认即可。
11.3 一些局限性
因为这是一个很简单的解决方法,难免会有很大的局限性。他最适用的情形是:代码调试,因为这时候需要不断做一些细节修改,而不用大规模动手术。
该方案能够解决的问题就是:ext环境中,jsp和java文件修改后,能自动更新到tomcat里面。JSP的改动能够立即生效,java文件,简单修改,不涉及到添加删除方法等,一般也能立即生效。
通过设置可以看到,只是监控了jsp和java文件的修改,如果修改了其他文件,则需要重新ant deploy并重启Tomcat。
另外,启动Tomcat之前,最好想办法让这个deploy执行一次,目的就是确保class文件拷贝到WEB-INF/classes下面了,否则,Tomcat启动后再拷贝这些class文件,会导致Tomcat需要重启。
如果大家有什么完善的方法,记得要告诉我。