一、下载Eclipse3.2(eclipse.org的最新版好像已经升到 3.2.1 了)
二、安装适合Eclipse3.2的MyEclipse
我的版本是MyEclipseEnterpriseWorkbenchInstaller_ 5.0M2 _E3.2.exe,在网上找到一个可用的序列号是:
Subscriber: www.1cn.biz
Subscriber Code: jLR8ZC-444-55-4467865481680090
接下来要做的是配置MyEclipse,点击Window->Preferences…,展开MyEclipse->Application Server->Tomcat 5,选择Tomcat Server为Enable,然后分别输入:
Tomcat Home Directory:D:/jakarta-tomcat- 5.0.28
Tomcat Base Directory:D:/jakarta-tomcat- 5.0.28
Tomcat Temp Directory:D:/jakarta-tomcat- 5.0.28 /temp
请根据你的Tomcat实际安装路径来进行调整,点击“OK”保存设置。
三、导入工程到eclipse 3.2.0
导入helloworld工程之前,请确认在helloworld目录下运行了maven eclipse命令。导入成功之后,右键单击工程“helloworld”,在上下文菜单中选择MyEclipse->Add WebProject Capabilities…
在Add MyEclipse WebProject Capabilities对话框中,修改Web Context Root为不同于helloworld的一个名称,比方说hw,然后点击Finish结束。
为什么要为helloworld改名呢,原因是MyEclipse会将你的工程发布到tomcat的webapps目录里,而maven也编译你的工程,然后部署到webapps里,为了让二者不打搅,只好修改MyEclipse的发布路径。
添加完成后,[src]目录和[target]目录中分别会有一个xml文件显示红叉,那个是因为dtd验证失败引起的,不用理会。
四、调整helloworld的目录结构使其适合MyEclipse发布
比较一下你的helloworld工程目录和maven发布到tomcat中的helloworld,你可以发现目录结构有很大的不同。为了让helloworld工程在eclipse中(安装了MyEclipse插件)便于发布和调试,我们必须调整helloworld工程为maven打包后的结构。
1、 首先复制部署在tomcat中helloworld目录下 WEB-INF目录中的[conf]、web.xml到helloworld工程目录的 WEB-INF目录中(注意:添加了MyEclipse WebProject Capabilities后才有的WEB-INF)。
2、 回到上一层目录,复制除了tomcat中helloworld目录下WEB-INF外的目录[images]、[logs]、[resources]、[scripts]、[style]、[templates]到helloworld工程目录中。
3、 在eclipse中,选择你的helloworld工程,按F5刷新一下工程。
五、添加测试代码
1、 在helloworld/templates/screen目录下添加文件HelloWorld.vm(注意,以后编辑和修改的vm文件所属目录均指helloworld/templates,而不是helloworld/src/templates)
2、 编辑其内容为
<h1>A field</h1>
The contents of content_field is $content_field <br>
3、 展开target/src源码包,在org.apache.turbine.app.helloworld.modules.screens下添加一个java类,取名为HelloWorld。编辑其代码为:
package org.apache.turbine.app.helloworld.modules.screens;
import org.apache.velocity.context.Context;
import org.apache.turbine.modules.screens.VelocityScreen;
import org.apache.turbine.util.RunData;
public class HelloWorld extends VelocityScreen {
public void doBuildTemplate(RunData data, Context context) {
try {
context.put("content_field", "some text");
} catch (Exception e) {
return;
}
}
}
4、 修改templates/screen目录下的Index.vm文件,在文件顶部增加一行代码:
<a href="$link.setPage('HelloWorld.vm')">helloWorld</a>
六、部署启动Tomcat
1、 点击
这个按钮部署你的工程到Tomcat5,Project处选择helloworld,点击Add按钮,在New Deployment对话框中,选择Server为Tomcat 5,Deploy type为Exploded Archive(如果选择Packaged Archive会自动将你的应用打包成一个.war文件),点击Finish完成部署。
2、 然后点击
下拉箭头,选择Tomcat 5->Start,以后每次可以直接点击
启动Tomcat5。
3、 打开浏览器,输入网址http://localhost:8080/hw,即可查看你的网页,不同的是,点击helloWorld的链接,你还可以看到如下页面:
A field
The contents of content_field is some text
没错,HelloWorld.vm中的$content_field变量已经被替换为HelloWorld.java中的some text了。
七、在eclipse中调试turbine代码
保持eclipse中tomcat的启动状态,双击HelloWorld.java中
context.put("content_field", "some text");
之前空白处,为其设上断点。然后重新刷新浏览器中http://localhost:8080/hw/app/template/HelloWorld.vm页面,你将会跳转到eclipse的debug模式下调试你的代码。
应该还有更好的办法去调试turbine,毕竟我的这种办法牺牲了和maven的兼容性,如果还想使用maven turbine:deploy来部署turbine工程,则需要helloworld目录下的[images]、[logs]、[resources]、[scripts]、[style]、[templates]这几个目录覆盖到helloworld/src/目录下。而且就工具而言,MyEclipse是要收费的。
总之,找到一个在IDE下编辑、调试、部署应用程序的方法至关重要,好的方法会使你事半功倍,不好的方法会使你处于盲打代码的泥潭中。
在这里,我仅仅只是抛砖引玉,希望有志于推广和使用turbine的朋友群策群力,共同丰富turbine的文档和使用技巧。