開發工具鏈-maven核心教程-Maven整合SSH(Spring,SpringMVC,Hibernate)

簡介


maven是一個項目管理工具,它的核心功能是:

  • 項目構建:統一開發規範與工具
  • 依賴管理:統一管理jar包

我們通過配置pom.xml來使用maven的這些功能:

在這裏插入圖片描述

它可以解決項目開發中常遇到的一些問題:

1、都是同樣的代碼,爲什麼在我的機器上可以編譯執行,而在他的機器上就不行?

2、爲什麼在我的機器上可以正常打包,而配置管理員卻打不出來?

3、項目組加入了新的人員,我要給他說明編譯環境如何設置,但是讓我撓頭的是,有些細節我也記不清楚了。

4、我的項目依賴一些jar包,我應該把他們放哪裏?放源碼庫裏?

5、這是我開發的第二個項目,還是需要上面的那些jar包,再把它們複製到我當前項目的svn庫裏吧

6、現在是第三次,再複製一次吧 ----- 這樣真的好嗎?

7、我寫了一個數據庫相關的通用類,並且推薦給了其他項目組,現在已經有五個項目組在使用它了,今天我發現了一個bug,並修正了它,我會把jar包通過郵件發給其他項目組,這不是一個好的分發機制,太多的環節可能導致出現bug

8、項目進入測試階段,每天都要向測試服務器部署一版。每次都手動部署,太麻煩了。

----此段摘自 https://blog.csdn.net/it_lihong/article/details/79088030

 

安裝配置


mac上安裝配置maven:

1.下載maven:下載完成後解壓,放到想放的位置。

2.配置maven環境變量:

# java,tomcat,maven
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
CATALINA_HOME=/Library/java/tomcat/apache-tomcat-8.0.50
M2_HOME=/Library/Java/maven/apache-maven-3.5.3
PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$M2_HOME/bin:$PATH:.
CLASSPATH=JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

export JAVA_HOME
export CATALINA_HOME
export M2_HOME
export PATH
export CLASSPATH

按esc :wq回車,保存退出後

在終端輸入 source ~/.bash_profile 以使文件生效。(勿忘這一步)

3.驗證:終端輸入: mvn -v
在這裏插入圖片描述

4.eclipse中配置maven

preferences->maven->installations 添加自己安裝的maven
在這裏插入圖片描述
5.國內配置淘寶鏡像:~/.m2/setting.xml(.m2是隱藏目錄,shift+command+.顯示隱藏目錄)

<mirrors>
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
</mirrors>

 

Windows上安裝配置maven:

1.下載maven:下載完成後解壓,放到想放的位置。

2.配置maven環境變量:

M2_HOME=/Library/Java/maven/apache-maven-3.5.3

在path中添加%MAVEN_HOME%\bin;

3.驗證:終端輸入: mvn -v

4.eclipse中配置maven

preferences->maven->installations 添加自己安裝的maven

5.國內配置淘寶鏡像:用戶文件夾/.m2/setting.xml(.m2是隱藏目錄,win10文件瀏覽器菜單欄->查看->勾選隱藏的目錄)

<mirrors>
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
</mirrors>

 

項目構建


maven項目結構

Maven在進行項目構建時,它對項目目錄結構擁有約定,知道你的源代碼在哪裏,類文件應該放到哪裏去。

Project

  |-src

  |   |-main

  |   |  |-java        —— 存放項目的.java文件

  |   |  |-resources   —— 存放項目資源文件,如spring, hibernate配置文件

  |   |-test

  |      |-java        ——存放所有測試.java文件,如JUnit測試類

  |      |-resources   —— 測試資源文件

  |-target             —— 目標文件輸出位置例如.class、.jar、.war文件

  |-pom.xml           ——maven項目核心配置文件

創建及運行maven項目

step1:New->maven project
在這裏插入圖片描述
在這裏插入圖片描述
step2:選擇工程模板

在這裏插入圖片描述
step3:填寫maven座標
在這裏插入圖片描述

step4:配置pom.xml : 添加servlet依賴,解決jsp報錯問題。

<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.leon</groupId>

	<artifactId>demo</artifactId>

	<packaging>war</packaging>

	<version>0.0.1-SNAPSHOT</version>

	<name>demo Maven Webapp</name>

	<url>http://maven.apache.org</url>

	<!-- 版本常量 -->

	<properties>

		<!-- junit依賴 -->

		<junitVersion>3.8.1</junitVersion>

		<!-- jstl,servelt依賴 -->

		<jstlVersion>1.2</jstlVersion>

		<servletVersion>2.5</servletVersion>

	</properties>

	<!-- 依賴管理 -->

	<dependencies>

		<dependency>

			<groupId>junit</groupId>

			<artifactId>junit</artifactId>

			<version>${junitVersion}</version>

			<scope>test</scope>

		</dependency>

		<dependency>

			<groupId>jstl</groupId>

			<artifactId>jstl</artifactId>

			<version>${jstlVersion}</version>

		</dependency>

		<dependency>

			<groupId>javax.servlet</groupId>

			<artifactId>servlet-api</artifactId>

			<version>${servletVersion}</version>

			<scope>provided</scope>

		</dependency>

	</dependencies>

	<build>

		<finalName>demo</finalName>

	</build>

</project>

step5:運行項目

方式一:使用 Maven Build發佈運行

右鍵項目->run as ->maven build …->goals輸入tomcat:run ->run
在這裏插入圖片描述
在這裏插入圖片描述

方式二:當作普通javaWeb發佈運行

servers視圖->new server->新建一個Tomcat server->將maven項目add->啓動服務器
在這裏插入圖片描述
在這裏插入圖片描述

 

導入maven項目


import->Existing Maven Projects->選擇導入的maven項目的pom.xml->執行maven install

在這裏插入圖片描述

 

Maven搭建SSH(Spring MVC + Spring +Hibernate)框架


準備工作

1/安裝並配置java運行環境

2/數據庫的安裝配置(Mysql)

3/安裝並配置服務器(Tomcat)

4/安裝並配置Maven

5/安裝 springsource-tool-suite(可選插件)

6/ eclipse創建MAVEN web項目

導包

配置好pom.xml後,系統會自動到maven的中央倉庫去下載相應的包.

/pom.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<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.leon.app</groupId>
    <artifactId>egg</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>

    <name>Getting Started with Spring on JBoss</name>

  <!-- 版本信息常量-->
  <properties>
    <encodeType>UTF-8</encodeType>
    <jdkVersion>1.7</jdkVersion>
    <mavenCompilerPluginVersion>3.1</mavenCompilerPluginVersion>
    <mavenWarPluginVersion>2.3</mavenWarPluginVersion>
    <jstlVersion>1.2</jstlVersion>
    <taglibVersion>1.1.2</taglibVersion>
    <servletVersion>2.5</servletVersion>
    <springVersion>4.3.1.RELEASE</springVersion>
    <hibernateVersion>4.3.5.Final</hibernateVersion>
    
  </properties>
  
  <dependencies>
  
    <!-- jsp頁面使用的jstl支持-->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>${jstlVersion}</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>${taglibVersion}</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>${servletVersion}</version>
      <scope>provided</scope>
    </dependency>
    
     <!-- spring-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${springVersion}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${springVersion}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${springVersion}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-orm</artifactId>
      <version>${springVersion}</version>
    </dependency>
    
    <!-- spring web + spring MVC-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${springVersion}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${springVersion}</version>
    </dependency>
    
    <!-- hibernate配置-->
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
      <version>${hibernateVersion}</version>
    </dependency>
    
    
  </dependencies>
  
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${mavenCompilerPluginVersion}</version>
        <configuration>
          <source>${jdkVersion}</source>
          <target>${jdkVersion}</target>
          <encoding>${encodeType}</encoding>
        </configuration>
      </plugin>
    </plugins>
    <finalName>egg</finalName>
  </build>
</project>

SpringMVC配置

1、/egg/src/main/resources/spring-mvc.xml配置:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context-4.1.xsd
     http://www.springframework.org/schema/mvc
     http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">

    <!-- 啓用spring mvc 註解 -->
    <mvc:annotation-driven />
    <!-- 設置使用註解的類所在的jar包 -->
    <context:component-scan base-package="com.leon" />
    
    <!-- 頁面路徑解析:在請求時模型視圖名稱添加前後綴 -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /><!--默認,可不配。 決定視圖類型,如果添加了jstl支持(即有jstl.jar),那麼默認就是解析爲jstl視圖 -->  
        <property name="prefix" value="/WEB-INF/jsp/" />     
        <property name="suffix" value=".jsp" /><!--可爲空,方便實現自已的依據擴展名來選擇視圖解釋類的邏輯  -->   
    </bean>

    <!-- 對靜態資源文件的訪問 -->
    <mvc:resources mapping="/images/**" location="/static/images/" />
    <mvc:resources mapping="/js/**" location="/static/js/" />
    <mvc:resources mapping="/css/**" location="/static/css/"  />

</beans>

2、/egg/src/main/webapp/WEB-INF/web.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
    <display-name>egg</display-name>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <!-- spring MVC DispatcherServlet config start -->
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <!-- 此處指向的的是SpringMVC的配置文件 -->
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <!--配置容器在啓動的時候就加載這個servlet並實例化 -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!-- spring MVC DispatcherServlet config end -->

</web-app>

參考文獻

框架篇:Spring+SpringMVC+hibernate整合開發

Spring Tool Suite(STS)和Maven建立的Spring mvc 項目

Maven常見問題及解決


1、Web Version修改

將web version由默認的2.3修改爲3.0

首先看到這個下面這個界面(沒有這個view的話,Window->Show View->Navigator

在這裏插入圖片描述

打開我選中的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="2.3"/>  

    <installed facet="wst.jsdt.web" version="1.0"/>  

    <installed facet="java" version="1.8"/>  

</faceted-project>  

修改jst.web這個屬性如下:

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

這樣就可以將Web version從默認的2.3修改成3.0

2、JDK Version修改

修改jdk版本爲1.8

打開pom.xml文件,找到標籤

添加如下標籤:

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

3、maven提示需要更新Maven項目

項目右擊-》Maven-》Update Project完成。

參考文獻

https://www.yiibai.com/maven/

 
後記: 好記性不如爛筆頭,寫這篇maven教程,主要是爲了備忘,如果能幫到新入坑的小夥伴,那就更好了。

Thank you for reading.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章