利用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.9\conf中的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>

 到現在,一個完整的環境搭建完成。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM