您的位置:首页 > 编程语言 > Java开发

eclipse 如何运行mavenWeb项目

2018-04-19 19:02 232 查看
 

eclipse 如何运行mavenWeb项目

CreateTime--2018年4月19日19:01:17

Author:Marydon

1.正确姿势

  首先,在eclipse中,使用maven对项目进行打包;

  其次,将项目发布到Tomcat服务器上

  说明:

  demo_WebService2-0.0.1-SNAPSHOT文件夹存放的是项目编译好的所有文件,相当于纯web项目的WebContent目录;

  demo_WebService2-0.0.1-SNAPSHOT.war是将项目编译好的所有文件打成了war包,相当于对上面文件夹的进行了压缩。

  方式一:采用热部署(推荐使用)

<!-- 方式一:引用demo_WebService2-0.0.1-SNAPSHOT.war包 -->
<Context docBase="D:\WorkSpaces\eclipse2016\demo_WebService2\target\demo_WebService2-0.0.1-SNAPSHOT.war" path="/demo">
</Context>
<!-- 方式二:引用demo_WebService2-0.0.1-SNAPSHOT文件夹 -->
<Context docBase="D:\WorkSpaces\eclipse2016\demo_WebService2\target\demo_WebService2-0.0.1-SNAPSHOT" path="/demo">
</Context>

  方式二:使用冷部署  

  将demo_WebService2-0.0.1-SNAPSHOT文件夹或demo_WebService2-0.0.1-SNAPSHOT.war

  拷贝到tomcat的webapps目录下,启动tomcat服务器即可。 

  普通的web项目,Tomcat热部署的优势,不明显,maven项目使用Tomcat可以省略很多步骤:

  举例:

  项目已经运行,现在我需要对Java文件进行修改:ServiceTestImpl.java文件中,新追加了一行代码

  以热部署的方式,发布的项目:(不用进行任何多余的操作)

  当使用请求访问到该文件时,控制台会输出该内容。

  以冷部署的方式,发布项目:

  第一步:使用maven,重新对项目打war包;

  第二步:重启Tomcat

  需要先完成上2步,控制台才能输出上图内容

  小结:使用maven打的jar包,并不一定是最新,当将项目发布到正式地址时,一定要记得重新打个war包。

 

2.错误方式

  第一步:将class文件的编译位置:demo_WebService2/target/classes,统一改为:demo_WebService2/src/main/webapp/WEB-INF/classes;

  第二步:采用了"Default output folder"(选中"Allow output for source folders"可以看到);

  第三步:Tomcat热部署访问:D:\WorkSpaces\eclipse2016\demo_WebService2\src\main\webapp;

  这样,虽然项目也可以正常启动并运行,但是,无法单独运行Java类,强制运行时,会报错:找不到或无法加载主类。

  这种方式错在哪?

  class文件的编译位置仍然像单纯的web项目那样,将编译路径指定到WEB-INF/classes文件夹下,这是不对的;

  maven项目的class的编译位置,主要的Java类和测试类都有各不相同的编译位置,已经不再将class文件统一放到WEB-INF/classes目录下了;

  使用maven对项目进行打包时,会将class文件统一组装到demo_WebService2/target/demo_WebService2-0.0.1-SNAPSHOT/WEB-INF/classes下;

  没有使用maven对项目进行打包。

 相关推荐:

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: