一栏饮、IDEA中使用maven插件
1).File->settings->Build,Exe...->Build Tools->Maven下
- Maven home directory: 指定maven本地安裝的路徑
- User settings file: 安裝路徑文件夾下的/conf/settings.xml文件
- Local repository: 本地倉庫玫坛,自動生成妓笙,idea會讀取安裝的maven配置文件自動識別杆麸!
2).File->settings->Build,Exe...->Build Tools->Maven->Runner下
-
VM Options:
-DarchetypeCatalog=internal -Dfile.encoding=GBK
- 解決非聯(lián)網(wǎng)下使用本地倉庫和解決控制臺中文亂碼問題
- 指定從本地的骨架插件中創(chuàng)建工程項目旷赖,如果不配置會到網(wǎng)上去下載
如果GBK不行辅髓,換成gb3212,或者其他試試泣崩。
二、使用idea創(chuàng)建maven工程
1.使用骨架創(chuàng)建maven的Java工程
-
創(chuàng)建工程的步驟
- 新建一個空的工程項目(或者已有的)洛口,然后File->New->Module
- Maven
- 點選右邊的Create from archetype: 第一次需要下載插件
- 選擇 org.apache.maven.archetypes:maven-archetype-quickstart
- next
- 指定坐標(biāo)
- GroupId: 公司/組織的名稱
- ArtifactId: 當(dāng)前的項目名稱
- next
- next
- Project name: 項目名稱
- Project location: 項目的位置
- finish
-
創(chuàng)建的工程結(jié)構(gòu)并不完整矫付,需要手動建文件夾
-
/項目/src/main/
創(chuàng)建resources
文件夾,右擊第焰,選擇【Mark Directory as】->【Resources Root】 -
/項目/src/test/
創(chuàng)建resources
文件夾买优,右擊,選擇【Mark Directory as】->【Test Resources Root】
-
2.不使用骨架創(chuàng)建maven的Java工程
創(chuàng)建maven的java工程挺举,推薦使用【不使用骨架的方式】創(chuàng)建
- 步驟
- 新建一個空項目(工作空間)杀赢,然后File->New->Module
- Maven
- 不要勾選Create from archetype
- next
- 填寫坐標(biāo)
- next
- Project name/Project location
- Finish
3.使用骨架創(chuàng)建maven的web工程【重點】
-
步驟:
- 建立的空項目(工作空間)下新建Module
- Maven
- 點擊Create from archetype
- 選擇org.apache.maven.archetypes:maven.archetype-webapp
- Next
- 添加項目坐標(biāo)
- GroupId: 公司/阻止名
- ArtifactId: 工程項目
- Next
- Next
- Project name/Project location
- Finish
- idea右下角提示框選擇 Enable Auto-Import
-
補充步驟
- 右擊main,新建文件夾java
- 右擊java文件夾,選擇Mark Directory as -> Sources Root
三豹悬、idea中maven_web工程配置
- idea騷造作介紹:(了解,或者忽略)
File->Project Structure->Modules->右下方Web Resource Directories-> +/- 路徑及可以在指定文件夾下右鍵新建jsp文件了葵陵;idea明確知道每個文件夾該放什么東西,非常智能瞻佛,建議不要改脱篙!
1. pom.cml基本配置
pom.xml是Maven項目的核心配置文件娇钱,位于每個工程的跟目錄,基本配置如下:
<project ...> -- 文件的根節(jié)點
<modelVersion> -- pox.xml使用的對象模型版本
<groupId> --項目名稱绊困,一般寫項目的域名
<artifactId> -- 模塊名稱文搂,子項目名或模塊名稱
<version> -- 產(chǎn)品的版本號
<packaging> -- 打包類型jar(純java工程,默認)/war(JavaWeb工程)/pom(Maven工程)等
<name> -- 項目的顯示名,常用于Maven生成的文檔
<description> -- 項目描述秤朗,常用于Maven生成的文檔
<dependencies> -- 項目依賴構(gòu)件配置煤蹭,配置項目依賴構(gòu)件的坐標(biāo)
<build> -- 項目構(gòu)建配置,配置編譯取视、運行插件等
2.maven工程中配置依賴jar包【定義坐標(biāo)】
1. 坐標(biāo)格式
- packaging標(biāo)簽介紹
- jar: 打包成jar
- war: 打包成war
- pom: 用于maven工程的繼承硝皂,通常父工程設(shè)置為pom
<dependency>
<groupId>?</groupId> -- 項目名稱
<artifactId>?</artifactId> -- 模塊名稱
<version>?</version> -- 版本信息
<packaging>jar/war/pom</packaging> -- 打包類型
</dependency>
2. IDEA智能配置
- 配置目錄
- 將光標(biāo)放在需要被配置的代碼位置
- 按住
alt + enter
- 選擇【
Add Maven Dependency
】,idea會自動配置pom.xml配置文件 - 按住
alt + enter
,選擇import導(dǎo)包
3. 手動配置
在項目根路徑下的【
pom.xml
】配置文件的根標(biāo)簽<project>下的<dependencies>標(biāo)簽中中進行配置依賴jar包坐標(biāo)
-
方式:在dependency/artifactId標(biāo)簽中寫servlet根據(jù)提示作谭,狂按
enter
即將所有坐標(biāo)補齊
<dependencies>
...
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>
...
</dependencies>
4. 如果本地倉庫沒有這些jar包稽物,需要到中央倉庫或者私服去找
百度
maven中央倉庫
, 搜索需要的jar包名稱選擇版本折欠,點點點贝或,找到坐標(biāo)描述,將其復(fù)制到pom.xml中的dependencies/中即可
3.idea中啟動maven項目的方式
idea 右邊邊框中有一個MavenProjects按鈕锐秦,點擊咪奖,如果有多個項目,選擇需要啟動的項目酱床。
1. Lifecycle生命周期羊赵,雙擊對應(yīng)的命令即可執(zhí)行!命令與插件是對應(yīng)的
2. MavenProjects上方的菜單欄圖標(biāo)有個m
字樣的斤葱,單擊即可輸入其他命令慷垮,比如啟動
-
tomcat:run
: 啟動項目,使用默認的tomcat6版本揖闸。 -
tomcat7:run
: 使用tomcat7版本的插件啟動項目揍堕。
3. maven工程servlet中解決jar包沖突
maven中集成了tomcat插件,已經(jīng)存在
jsp-api.jar
汤纸、servlet-api.jar
這兩個包衩茸,但是在項目編寫的時候找到是倉庫的包進行編譯的,引入包之后發(fā)生了包的沖突贮泞,這時可以在pom.xml中配置一個作用域【<scope>provided</scope>
】
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
同時可以給test坐標(biāo)添加上一個作用域(依賴范圍)【
<scope>test</scope>
】楞慈,如下介紹依賴范圍
4.依賴范圍介紹
A依賴B,需要在A的pom.xml文件中添加B的坐標(biāo)啃擦,添加坐標(biāo)時需要指定依賴范圍
<scope>?</scope>
囊蓝,依賴范圍包括:
1. compile: 【打包】
編譯范圍:指A在編譯時依賴B,此范圍為默認依賴范圍令蛉。編譯范圍的依賴會用在編譯聚霜、測試狡恬、運行,由于運行時需要蝎宇,所以編譯范圍的依賴會被打包弟劲。
2. provided: (避免jar包沖突)
只有在當(dāng)jdk或者一個容器已提供該依賴之后才使用,provided依賴在編譯和測試時需要姥芥,在運行時不需要兔乞,比如:servlet api被tomcat容器提供
3. runtime: 【打包】
在運行和測試系統(tǒng)的時候需要,但在編譯的時候不需要凉唐。比如:jdbc的驅(qū)動包庸追。由于運行時需要,所以runtime范圍的依賴會被打包台囱。
4. test:
在編譯和運行時不需要锚国,只有在測試編譯和測試運行階段可用,比如junit 玄坦。只在測試時起作用血筑,不會被打包。
5. system: (不推薦使用)
與provided類似煎楣,但是必須顯示的提供一個對于本地系統(tǒng)中jar文件的路徑豺总,需要指定systemPath磁盤路徑,system不推薦使用
1.依賴范圍舉例總結(jié)
編譯范圍 | jar包舉例 | 描述 |
---|---|---|
compile | 默認引入的jar包 | 默認择懂,編譯喻喳、測試、運行有效 |
provided | servlet-api困曙、jsp-api | 編譯表伦、測試有效,防止與tomcat下的jar包沖突 |
runtime | jdbc驅(qū)動jar包 | 測試慷丽、運行有效 |
test | junit | 測試優(yōu)先 |
依賴范圍由強到弱的順序:
compile > provided > runtime > test
四蹦哼、Maven工程運行環(huán)境修改
如果代碼邏輯沒問題,無從下手要糊,最好的解決方案就是問問度娘
@idea中使用骨架創(chuàng)建web項目啟動遇到500:
org.apache.jasper.JasperException: Unable to compile class for JSP
;maven集成的tomcat插件默認使用的是Tomcat6版本,一般在開發(fā)中常用的jdk版本為1.8 Tomcat6與jdk8搭配會出現(xiàn)兼容問題纲熏,解決方案就是將項目的Tomcat的版本調(diào)高。
1. 使用maven的Tomcat7插件
1. 在pom.xml文件中加上如下代碼即可
- 啟動命令:
tomcat7:run
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<!-- 配置锄俄,可選 -->
<configuration>
<port>80</port>
</configuration>
</plugin>
</plugins>
</build>
2. 如果記不住groupId局劲,可以配置模板
【File】 -> 【Settings...】 -> 【搜索live】 -> 【右上方+】 -> 【Template Group】(推薦)/Live Template... -> 【起一個組名比如custom】 -> 【中間空白部分選中自建的組】 -> 【又點擊右上方+】-> 【Live Template】 -> 【Abbreviation: tomcat7】 -> 【Template text:如下代碼框】-> 【點擊下方提示條Define】 -> 【選中XML】 -> 【OK】
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>80</port>
</configuration>
</plugin>
在xml中的使用方式:輸入tomcat7,根據(jù)提示回車,自動補全奶赠!
3. 配置jdk插件版本
1. 在<build>
標(biāo)簽內(nèi)配置,配置方式與配置tomcat7一致
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<target>1.8</target>
<source>1.8</source>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
2. 按照上面同樣的步驟配置對應(yīng)的groupId的模板鱼填,配置到custom組下!
...【名字取為 jdk1.8】->【Define】->【選中XML】->【OK】
4. 使用tomcat8插件請參考
https://blog.csdn.net/u011781521/article/details/75194071
四毅戈、Maven工程中MySQL的jar包配置
連接數(shù)據(jù)庫四個要素:數(shù)據(jù)庫驅(qū)動苹丸,連接數(shù)據(jù)庫的地址塑猖,數(shù)據(jù)庫用戶名稱,數(shù)據(jù)庫密碼
- pom.xml中配置mysql的數(shù)據(jù)庫驅(qū)動
<dependencies>
...
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
<scope>runtime</scope>
</dependency>
</dependencies>
五谈跛、maven工程運行調(diào)試
1. 端口占用處理
重啟之前停掉之前開啟的項目
2.配置項目獨立的Maven啟動配置/斷點調(diào)試
- 步驟
- 【Run】 ->
- 【Edit Configurations】 ->
- 【右上角+】 ->
- 【Maven】->
- 【Name:項目名; Command line: tomcat7:run...】->
- 【OK】