zoukankan      html  css  js  c++  java
  • Maven学习笔记—使用Eclipse插件创建Java WebApp项目

    使用 Java 的猿们,最多接触的大概就是 web 项目了吧?在学习 Maven 的过程中,首先当然就是创建一个 webapp 项目。

    自己在尝试的过程中,碰到了很多的问题。我把详细的过程都记录下来,以便今后参考。

    使用 Maven 的 m2eclipse 插件创建 Java WebApp 工程的步骤:
     
    如果未搭建好Maven开发环境,请参考前一篇:Maven学习笔记——环境搭建
     
    一、新建工程项目:
     
    打开 Eclipse, 菜单栏选择 File -> new -> other,在弹出的对话框中找到 Maven Project.
    在弹出的新建 Maven 项目对话框中,不要勾选第一项 “Create a simple project”,如下图所示,点击 Next。
     
     
    在列表中找到并选择“maven-archetype-webapp”,点击Next.如下图所示:
     
     
    填写项目相关信息,Finish。
     
    建好的工程结构如下图:
     
     
    可以看到,web资源文件的目录为 arc/main/webapp
     
    第二步:修改JRE版本。
     
    项目生成后,JRE 版本默认为1.5 ,我们需要修改成更高版本的。
    在项目的 POM.xml 文件中,加入如下配置:
     
      <build>
      <plugins>
      <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>2.1</version>
      <configuration>
      <source>1.7</source>
      <target>1.7</target>
      </configuration>
      </plugin>
      </plugins>
      </build>

    (也可以通过修改 settings.xml 全局配置以让 Maven 默认设置特定版本的 JRE,具体方法这里先不写了)

    设置完后,选中项目右击,弹出的菜单中选择 Maven->Update Project .↓↓↓
     
     
    更新之后,发现项目还存在错误。
    在项目根目录右击弹出菜单,选择 Build Path ->Configure Buile Path,进入项目的 Java build path 配置页面:
    所示错误如下图,提示缺少(missing)两个文件夹。但其实文件夹是存在的。
     

     这时只要将 Libraries 标签中的 JRE System Library 设置为本机默认的就可以解决该错误(不知道为什么会这样)

    如下图,查看 Libraries 标签↓↓↓
     
     

     双击 JRE System Library 项,弹出 JRE 设置界面:↓↓↓

     
     直接选 Workspace default JRE.
     
    完成后,发现项目还有三个报错,如下图所示。别急,我们在接下来的步骤中一个一个解决。
     
     

     

     第三步:添加服务器运行环境(Server Runtime)
     
    项目中,index.jsp 显示有错误,错误信息为:
     The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
     
    这时因为缺少了servlet-api、JSP-API、JSTL等包。
    我们不需要一个一个把包导进来,因为 Tomcat 等 Servlet 容器都提供了这个包。在 Eclipse 中对项目设置一下运行环境就可以了。
    切换到 Libraries 标签,点击“Add Library”按钮。
     
     

     在弹出的对话框中,选择“Server Runtime”。

     

     选择 Tomcat 服务器。如果这里没有服务器配置,请事先配置一个 Tomcat 等服务器。

    (不知道如何配置服务器的话,就用搜索引擎搜一番)。

     

     选中 Tomcat,点击 Finish 后,看到工程已经不再有那两个 Servlet 的报错了。

     
    第四步:Project Facet 配置
     
    到这一步时,项目应该还有一处错误:
    Java compiler level does not match the version of the installed java project facet.
    如下图所示:
     

      

    我们需要通过修改 Project Facets 来解决这个错误。

    打开项目的 Project Facet 置项,如下图,将 Java 的版本设置为 1.7,确定。
    如果这时已经时1.7了,则无需修改。
    (也不是一定需要1.7,基本上和之前步骤配置的 JRE 版本一致即可)
     
     
     现在应该不再报错了。
     
    但是我们还需要将 Project Facet 中的 Dynamic web module 的版本设置的更高一些。
    如下图所示,我将它设置为3.0版本。
     
    这时可能会报如下的错误:
     
    Cannot change version of project facet Dynamic Web Module to 3.0
     
    我在网上找了好多信息,发现所有的解决方法完全没有效果。
    但是偶然的,我发现一个简单的方法就能解决这个问题(不知道是通用的还是我自己环境中的特例)。
    方法如下:
    将 Dynamic Web Module 前的勾取消,点击 Apply。然后再把勾给勾上,发现已经不报错了。
     
    第五步:运行
     
    设置完毕,运行一下试试:
    右击项目 -> Run as -> Run on Server。
     
    选择一个服务器:

     

    这时项目应该已经配置到服务器中了:

     

     

     点击 Finish,运行成功后打开链接:
    http://localhost:8080/hello-maven-web/index.jsp
    发现浏览器报404错误。
    检查项目的部署配置:
     
     发现少了 webapp 这个目录部署路径。
    点击“Add”,弹出的对话框中选择“folder”,选中 webapp 文件夹:

     

    重新运行一次,终于看到 Hello World!
     

     最后,我也不知道为什么,似乎很简单的事情,会变得如此复杂。

    博客园Blog: http://www.cnblogs.com/wenziii/
    独立博客: 时光的脚注
    新浪微博:@文子的天空
    本文版权归作者和博客园所有,欢迎转载,转载请注明出处
  • 相关阅读:
    datadog数据json格式转换prometheus文本格式
    clickhouse聚合
    iOS面试
    程序员如何快速准备面试中的算法
    李刚OC语言疯狂讲义笔记
    传智播客内部 学习网站+书籍分享
    iOS-多线程总结笔记
    iOS-简化单例模式(定义成宏 以后通用)
    iOS-单例模式(懒汉式和饿汉式)和GCD实现
    iOS-队列组
  • 原文地址:https://www.cnblogs.com/wenziii/p/6120319.html
Copyright © 2011-2022 走看看