學習SSM階段使用到的jar包座標.
學習SSM階段使用到的jar包座標.
前言
用maven整合Java專案的確非常香, 每次構建工程時只需要拷貝一下這裡的pom.xml程式碼即可. 不過仍然有幾點需要注意
一、拿來主義.以後構建maven專案, 只需要拿走以下程式碼即可,但是要遵循使用說明, 替換部分內容
使用說明:
使用說明:
第一 :
開頭那幾行, 出現了<modules></modules>
標籤(modules標籤用於多模組構建),
那麼就需要在module裡面刪除之前工程的模組,加入新工程的模組名. 如果有多個模組,就加多個<module>
子標籤
如果報錯了就試試, 如果不報錯就不用管
第二 :
在專案的子模組的pom.xml中, 有一個<parent>
標籤(parent標籤用於多模組構建),
代表了他的父模組是誰. 如果報錯了就在子模組里加入parent標籤的配置即可(如果不會新增就去本地copy一個配好了的子模組的pom.xml)
如果報錯了就試試, 如果不報錯就不用管
第三 : ctrl+r, 替換掉artifactID(必須)
和groupID(這個可選)裡面的內容
第四 : 如果匯入完成並且重新整理了maven專案之後,報錯內容為: xxx module 已經被maven專案移除, 你想在本地專案樹中移除該模組嗎?
這時候一定要選否, 然後選中xxx module(報錯的module)裡面的pom.xml, 右擊pom.xml->add as maven project
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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>xxxxxx</groupId>
<artifactId>xxxxxx</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>xxxxxx Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<!--第一個坑 1.8-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>12</maven.compiler.source>
<maven.compiler.target>12</maven.compiler.target>
<spring.version>5.1.9.RELEASE</spring.version>
<springmvc.version>5.1.9.RELEASE</springmvc.version>
<mybatis.version>3.5.2</mybatis.version>
</properties>
<!--鎖定jar包版本-->
<dependencyManagement>
<!--Mybatis-->
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!--Springmvc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springmvc.version}</version>
</dependency>
<!--Spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!--以下是新版dependencies,處理了jar包衝突-->
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--注意以下兩個包 一個是servlet-api,一個是jsp-api.這兩個必須指定scope為provided-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<!--<scope>provided</scope>-->
</dependency>
<dependency>
<!--這裡是javax.servlet.jsp 不要導錯了-->
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<!--<scope>provided</scope>-->
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
<build>
<finalName>xxxxxx</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>12</source>
<target>12</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!--<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>-->
</plugins>
</pluginManagement>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
二、使用版本鎖定的方式解決依賴衝突
這是專案不同模組之間jar包依賴的常見毛病. 不過只需要版本鎖定一下就可以解決這個問題. 程式碼如下:
<!--鎖定jar包版本-->
<dependencyManagement>
<!--Mybatis-->
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!--Springmvc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springmvc.version}</version>
</dependency>
<!--Spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
三、一些小坑
1.properties標籤中JDK版本的指定
<properties>
<!--第一個坑 12-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>12</maven.compiler.source>
<maven.compiler.target>12</maven.compiler.target>
<spring.version>5.1.9.RELEASE</spring.version>
<springmvc.version>5.1.9.RELEASE</springmvc.version>
<mybatis.version>3.5.2</mybatis.version>
</properties>
如果這裡用的是1.8 這種帶"." 的版本, 那就填1.7 1.8之類的
如果這裡用的是JDK11, 12 那就直接填寫11或12
2.servlet-api和jsp-api這兩個jar包的問題
眾所周知這兩個jar包常常需要跟一個作用範圍provided
<scope>provided</scope>
但是在JDK12 + tomcat9 + maven3.5.2的環境下, 如果加上provided就會報錯
所以這裡就不加作用域了
相關文章
- SSM框架各類jar包SSM框架JAR
- Java學習第一階段Java
- Java初階段學習的複習總結Java
- 零基礎Python學習路線及階段學習目標【乾貨】Python
- Vue 近階段學習總結Vue
- Java各階段學習書目Java
- 【Web】Web 階段學習筆記Web筆記
- C語言學習的幾個階段C語言
- 學習程式設計的七個階段程式設計
- 讀懂深度學習,走進“深度學習+”階段深度學習
- 階段性總結_學習筆記筆記
- 學習vue第一階段小結Vue
- 人工智慧學習階段有哪些?人工智慧
- SAP學習 看看你在哪個階段
- C++各階段學習書目C++
- 線段樹進階 學習筆記筆記
- 流體力學守恆形式Euler方程(笛卡爾座標、柱座標、球座標)
- 軟體開發各個階段用到的各種圖
- 初學Java的5個階段,你在哪個階段?Java
- linux學習的基本分為三個階段Linux
- JavaScript入門學習書籍的階段選擇JavaScript
- 小白階段如何學習Web前端知識Web前端
- Java 學習路線之四個階段Java
- 深度學習與CV教程(12) | 目標檢測 (兩階段,R-CNN系列)深度學習CNN
- Python學習的十個階段,學完神功大成,對應一下看看你自己在哪個階段Python
- 測一測你的演算法階段學習成果演算法
- react 學習--元件的生命週期(二)執行階段React元件
- react 學習--元件的生命週期(三)銷燬階段React元件
- 學習java的路線圖-五個必經階段Java
- jar包JAR
- 大資料的系統學習:大資料學習的三個階段概述大資料
- 關於Html+css階段學習總結HTMLCSS
- 【計算幾何】求線段相交交點座標
- 無聊的宇宙中,一些有啟發的學習座標
- 面試每日一題011:從新手階段到流失階段,遊戲的階段性目標是什麼?面試每日一題遊戲
- SSM學習筆記3——整合 SpringMVC、整合SSMSSM筆記SpringMVC
- 「學習筆記」線段樹標記永久化筆記
- 第一階段複習