zoukankan      html  css  js  c++  java
  • 利用maven开发springMVC项目——开发环境搭建(版本错误解决)

     申明:部分内容参见别人的博客,没有任何的商业用途,只是作为自己学习使用。(大佬博客)

    一、相关环境

    - eclipse :eclipse-jee-oxygen-3-win32-x86_64(下载地址

     -Maven:maven-3.5.3

    - jdk :1.8

    - tomcat:7.0

    -mysql :5.5.4

    -spring 5.0.1

    二、软件安装

    前面的软件安装包括Maven的简单使用,我会抽时间写一个简单的教程。

    三、创建MavenWeb项目

    创建完之后,是这样的,好像结构不对,别着急,问题:因为默认使用自带的jdk,需要调成自己的jdk

     解决方法:

    别急,后台又开始另外一个错误:我们看他的描述,表示没有找到"javax.servlet.http.HttpServlet"

    Description    Resource    Path    Location    Type
    The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path    index.jsp    /SpringMVCBlog/src/main/webapp    line 1    JSP Problem

    解决方法:

    右键项目——properties——

     

    一路apply——finish之后发现世界安静了

    四:利用Maven导入jar包

    既然我们要用SpringMVC开发,那肯定少不了SpringMVC的相关jar包。如果不使用Maven的话,那就需要去官网下载相关的jar包,然后导入到项目中。现在使用maven的话,就不需要上网找jar包了。具体容我一一道来。

        Maven所做的工作其实很简单,就是自动把你需要的jar包下载到本地,然后关联到项目中来。maven的所有jar包都是保存在几个中央仓库里面的,其中一个最常用的是Maven Repository,即,你需要什么jar包,它就会从仓库中拿给你。那么如何告诉maven需要什么jar包呢?我们看看工程目录,能找到一个pom.xml文件(这个文件在刚创建好项目时就已经展现在了大家面前),maven就是靠它来定义需求的,代码如下:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.hone</groupId>
      <artifactId>SpringMVCBlog</artifactId>
      <packaging>war</packaging>
      <version>0.0.1-SNAPSHOT</version>
      <name>SpringMVCBlog Maven Webapp</name>
      <url>http://maven.apache.org</url>
      
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <finalName>SpringMVCBlog</finalName>
      </build>
      
    </project>

     我们可以看到这个文件包含了我们之前定义的本项目的gropId等信息,这些信息是该项目的标识,我们不要去改动它们。重点看<dependencies>标签,翻译过来是”依赖“的意思,也就是说把对每个包的需求都称为一个依赖<depedency>,定义在<dependencies>中。在每个<depedency>中,你需要提供的是所需jar包的groupId、artifactId、version这三个必要信息。比如上面我们看到引入可一个junit包,格式如下:

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>

     这是单元测试包,提供了三个基本信息,第4个scope对其他包来说是非必需的。所有jar包的引入都要满足这个格式。那么如何查看这些jar包的3个信息呢,可能刚接触是开发者还不是很熟悉,这个时候就需要查阅仓库了。比如我们需要引入Spring核心jar包spring-core,打开Maven Repository搜索spring-core,进入如下界面:

        点击进入红框选中的Spring Core,如下所示,可以看到各版本的使用情况:

       选择最新版本4.2.5.RELEASE,可以看到其dependency写法如下红框所示:

       我们将其复制到pom.xml中的<dependencies>中:

    这样,Maven就会开始自动下载jar包到本地仓库,然后关联到你的项目中,下载完成后,我们展开工程目录中External Libraries:

     

    可以发现,虽然我们只写了一个依赖,但是它导入了两个jar包,也就是说,导入某个jar包时,与它密切相关的jar包也会同时被导入进来。

        除了spring-core,我还要spring-context,复制spring-core的<dependency>,将spring-core改为spring-context,如下:

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.4.RELEASE</version>
        </dependency>

    这就是Maven的强大之处,如果你需要使用SpringMVC开发网站的话,只需记住几个重要的包的名字,就可以轻松将所有包导入项目中。

        长话短说,现在我们要进行SpringMVC的开发,请把你的pom.xml变成下面的样子,当然不要改你的grupId等信息(从modelVersion到url都不要动):

    <properties>
        <spring.version>5.0.4.RELEASE</spring.version>
        <hibernate.version>5.1.0.Final</hibernate.version>
    </properties>

     请在<dependencies>中加入以下依赖:

    <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-jpa</artifactId>
                <version>1.10.1.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-entitymanager</artifactId>
                <version>${hibernate.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-c3p0</artifactId>
                <version>${hibernate.version}</version>
            </dependency>
    
            <dependency>
                <groupId>com.mchange</groupId>
                <artifactId>c3p0</artifactId>
                <version>0.9.5.2</version>
            </dependency>
    
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.39</version>
            </dependency>

    将<build>改成如下形式:

    <build>
        <finalName>SpringMVCBlog</finalName>
        <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
      </build>

    maven自动帮助我们配置了如此多的配置文件

    可能在创建项目完成后提示错误:

    Description Resource Path Location Type
    Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix. SpringMVCDemo line 1 Maven Configuration Problem

    解决方法:只需要按照提示右键项目——Maven——Updata Project

     当建立项目之后,却突然提示我这个错误

    第一个错误提示我,java编译jdk的版本和安装jdk的版本不一致。

    解决方法通常有以下几种:

    解决方法 1:

    我使用的jdk是1.8

      windows—proferences—java–compiler设置jdk为1.8

      windows—proferences—java–Installed JREs设置jdk为1.8

      点击项目右键–properties—java Compiler 设置jdk为1.8

      点击项目右键–properties—eclipse—project Facets设置java为1.8

      点击项目右键–properties—eclipse—project Facets设置Dynamic Web Module 为3.1(这是你在web.xml配置的servlet版本)

      点击项目右键–Maven—update project 错误应该可以消除

     如果还是不行你就在pom.xml里面的,修改plugin的版本(我安装的jdk是1.8,但是我调成1.8之后,一直报错,我只能调成jdk1.7,错误解决,但是此种方法指标不治本)

    <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>
    </plugins>

    解决方法 2:

    修改安装目录中的..apache-maven-3.3.9conf中的settings.xml中修改jdk版本 
    在profiles节点中添加

    <profile>  
        <id>jdk-1.8</id>  
         <activation>  
              <activeByDefault>true</activeByDefault>  
              <jdk>1.8</jdk>  
          </activation>  
    <properties>  
    <maven.compiler.source>1.8</maven.compiler.source>  
    <maven.compiler.target>1.8</maven.compiler.target>  
    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>  
    </properties>  
    </profile>   

    解决方法3:

    到该项目路径下面修改org.eclipse.wst.common.project.facet.core.xml这个文件,检查版本是否一直

    <?xml version="1.0" encoding="UTF-8"?>
    <faceted-project>
      <fixed facet="wst.jsdt.web"/>
      <installed facet="jst.web" version="3.1"/>
      <installed facet="wst.jsdt.web" version="1.0"/>
      <installed facet="java" version="1.8"/>
    </faceted-project>

     到现在,一个完整的环境搭建完成。

  • 相关阅读:
    Java多线程之“同步”
    50 道 Java 线程面试题(转载自牛客网)
    Ubuntu14.04搭建Caffe(仅CPU)
    【译】OkHttp3 拦截器(Interceptor)
    OkHttp3 使用详解
    JSP ---- 声明、表达式、脚本、注释
    dom解析和sax解析的区别及优缺点
    一个java源文件中为什么只能有一个public类。
    js传入参数为字符串问题
    java project中 xml文件路径问题
  • 原文地址:https://www.cnblogs.com/xiaxj/p/8669930.html
Copyright © 2011-2022 走看看