转 struts2 开发环境筹建
转 struts2开发环境搭建h项目要从struts1升级struts2 ,在iteye看到搭建struts2 开发的环境的文章,转过来,
转 struts2 开发环境搭建
h项目要从struts1升级struts2 ,在iteye看到搭建struts2 开发的环境的文章,转过来,供自己参考。
?
原文地址:http://www.iteye.com/wiki/struts2/1321-struts2-development-environment-to-build
目 录
[ - ]搭建最简单的开发环境完善Library的管理方式
搭建最简单的开发环境
在这里,我简单解释一下这些目录的作用:
src(source folder):存放所有的Java源代码。
conf(source folder):存放所有的配置文件。
test(source folder):存放所有的Java测试代码和调试代码。
web:web项目的根目录,下面有WEB-INF目录以及在此之下的classes和lib目录。classes目录将会成为所有的source folder的编译对象目录,而lib目录则存放项目所依赖的jar包。
lib:也存放jar包,这些jar包可能仅仅在开发调试时依赖,项目本身则不依赖这些jar文件。
2. 编写IDE相关的文件 在这里,你还能看到classpath文件和project文件。这两个文件是导入到eclipse中所必须的文件,是我为eclipse工程而写的文件。如果你使用其他IDE,可能需要自行编辑与其他IDE相关的项目文件。
在建立了这些目录结构后,你就可以将其导入到eclipse中作为eclipse的工程了。
3. 加入相关调试所需要的jar包,并指定classpath 接下来,我们把Jetty所需要的jar包copy到lib目录下,并在IDE中指定classpath。
4. 添加Jetty启动类 在test下建一个runtime的目录,并添加Jetty启动类。
?
package runtime;import org.mortbay.jetty.Connector;import org.mortbay.jetty.Server;import org.mortbay.jetty.nio.SelectChannelConnector;import org.mortbay.jetty.webapp.WebAppContext;/** * Jetty Server starter. Use embedded mode. * * @author Downpour */public class JettyStarter {/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {long begin = System.currentTimeMillis();Connector connector = new SelectChannelConnector();connector.setPort(Integer.getInteger("jetty.port", 8080).intValue());WebAppContext webapp = new WebAppContext("web", "/struts-sample");webapp.setDefaultsDescriptor("./test/runtime/webdefault.xml");Server server = new Server();server.setConnectors(new Connector[] { connector });server.setHandler(webapp);server.start();System.out.println("Jetty Server started, use " + (System.currentTimeMillis() - begin) + " ms");}}
如果此时,你在WEB-INF下有web.xml,那么你就可以执行上面这个Jetty的启动类。
5. 启动、调试、测试
执行了Jetty的启动类后,可以看到启动界面的日志:
?15 [main] INFO org.mortbay.log - Logging to org.slf4j.impl.SimpleLogger(org.mortbay.log) via org.mortbay.log.Slf4jLog15 [main] INFO org.mortbay.log - jetty-6.1.71109 [main] INFO org.mortbay.log - Started SelectChannelConnector@0.0.0.0:8080Jetty Server started, use 1547 ms
这表示你已经成功启动了Jetty作为你的Web服务器。当然,你可以使用Debug模式来执行Jetty类,这样就进入了调试模式,你可以在代码中设置断点进行调试。
在这里,还有一点需要简单提一下,默认情况下,Jetty会在windows上使用缓存,所以会把js,css等文件进行锁定,使你无法编辑。为了解决这个问题,需要设置一些默认参数。这里,我们可以使用google大法,已经有朋友为我们解决了这个问题:
http://www.blogjava.net/alwayscy/archive/2007/05/27/120305.html
所以,我在runtime的同级目录建立了一个webdefault.xml文件,并且指定Jetty使用该文件作为默认的参数设定。
【小结】
在上面我介绍了我个人的开发调试环境,这种开发环境的好处可能有一下这些:
1. 开发环境不依赖于任何IDE或者相关的插件,只需要运行Java文件即可进行调试。(当然,你可能需要编写IDE相关的project文件来获取IDE的工程支持)
2. 开发环境不依赖于任何外部的Web服务器,与环境无关,所以无论将项目迁移到哪里,都可以直接运行。
3. 不需要开发人员额外学习如何搭建开发环境,开发环境已经内置,降低了开发人员的学习成本。 完善Library的管理方式
3. 为你的项目指定classpath,引用的jar包存在于Library工程中
在这里,我们可以看到,原来项目中的lib目录被删除,jar包也被删除。在项目中所引用的jar包是Library项目中的jar包。
【小结】
完成了上述所有的步骤之后,Library就被集中管理起来,而每个项目也不会再变得那么庞大。当然,开发环境的搭建完全取决于个人的习惯,所以使用各自喜欢的方式吧,不要让环境问题束缚你们的手脚。