02.IDEA中集成Maven的配置

一栏饮、IDEA中使用maven插件

1).File->settings->Build,Exe...->Build Tools->Maven下

  1. Maven home directory: 指定maven本地安裝的路徑
  2. User settings file: 安裝路徑文件夾下的/conf/settings.xml文件
  3. Local repository: 本地倉庫玫坛,自動生成妓笙,idea會讀取安裝的maven配置文件自動識別杆麸!

2).File->settings->Build,Exe...->Build Tools->Maven->Runner下

  1. 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工程

  1. 創(chuàng)建工程的步驟

    1. 新建一個空的工程項目(或者已有的)洛口,然后File->New->Module
    2. Maven
    3. 點選右邊的Create from archetype: 第一次需要下載插件
    4. 選擇 org.apache.maven.archetypes:maven-archetype-quickstart
    5. next
    6. 指定坐標(biāo)
      • GroupId: 公司/組織的名稱
      • ArtifactId: 當(dāng)前的項目名稱
    7. next
    8. next
      • Project name: 項目名稱
      • Project location: 項目的位置
    9. finish
  2. 創(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)建

  • 步驟
    1. 新建一個空項目(工作空間)杀赢,然后File->New->Module
    2. Maven
    3. 不要勾選Create from archetype
    4. next
    5. 填寫坐標(biāo)
    6. next
    7. Project name/Project location
    8. Finish

3.使用骨架創(chuàng)建maven的web工程【重點】

  • 步驟:

    1. 建立的空項目(工作空間)下新建Module
    2. Maven
    3. 點擊Create from archetype
    4. 選擇org.apache.maven.archetypes:maven.archetype-webapp
    5. Next
    6. 添加項目坐標(biāo)
      • GroupId: 公司/阻止名
      • ArtifactId: 工程項目
    7. Next
    8. Next
    9. Project name/Project location
    10. Finish
    11. idea右下角提示框選擇 Enable Auto-Import
  • 補充步驟

    1. 右擊main,新建文件夾java
    2. 右擊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)簽介紹
    1. jar: 打包成jar
    2. war: 打包成war
    3. pom: 用于maven工程的繼承硝皂,通常父工程設(shè)置為pom
<dependency>
  <groupId>?</groupId> -- 項目名稱
  <artifactId>?</artifactId> -- 模塊名稱
  <version>?</version> -- 版本信息
  <packaging>jar/war/pom</packaging> -- 打包類型
</dependency>

2. IDEA智能配置

  • 配置目錄
    1. 將光標(biāo)放在需要被配置的代碼位置
    2. 按住alt + enter
    3. 選擇【Add Maven Dependency】,idea會自動配置pom.xml配置文件
    4. 按住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字樣的斤葱,單擊即可輸入其他命令慷垮,比如啟動

  1. tomcat:run: 啟動項目,使用默認的tomcat6版本揖闸。
  2. 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)試

  • 步驟
    1. Run】 ->
    2. Edit Configurations】 ->
    3. 右上角+】 ->
    4. Maven】->
    5. Name:項目名; Command line: tomcat7:run...】->
    6. OK

1.在idea右上角選擇對應(yīng)項目進行啟動

2.添加斷點羊苟,然后在idea右上角選擇debugrun進行啟動

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市感憾,隨后出現(xiàn)的幾起案子蜡励,更是在濱河造成了極大的恐慌,老刑警劉巖阻桅,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凉倚,死亡現(xiàn)場離奇詭異,居然都是意外死亡嫂沉,警方通過查閱死者的電腦和手機稽寒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來趟章,“玉大人杏糙,你說我怎么就攤上這事◎就粒” “怎么了宏侍?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蜀漆。 經(jīng)常有香客問我谅河,道長,這世上最難降的妖魔是什么确丢? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任绷耍,我火速辦了婚禮,結(jié)果婚禮上鲜侥,老公的妹妹穿的比我還像新娘褂始。我一直安慰自己,他們只是感情好剃毒,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布病袄。 她就那樣靜靜地躺著搂赋,像睡著了一般赘阀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脑奠,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天基公,我揣著相機與錄音,去河邊找鬼宋欺。 笑死轰豆,一個胖子當(dāng)著我的面吹牛胰伍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播酸休,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼骂租,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了斑司?” 一聲冷哼從身側(cè)響起渗饮,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宿刮,沒想到半個月后互站,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡僵缺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年胡桃,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磕潮。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡翠胰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出自脯,到底是詐尸還是另有隱情亡容,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布冤今,位于F島的核電站闺兢,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏戏罢。R本人自食惡果不足惜屋谭,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望龟糕。 院中可真熱鬧桐磁,春花似錦、人聲如沸讲岁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缓艳。三九已至校摩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阶淘,已是汗流浹背衙吩。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留溪窒,地道東北人坤塞。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓冯勉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親摹芙。 傳聞我的和親對象是個殘疾皇子灼狰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Maven的基本了解 什么是Maven? Maven就是Apache下的一個開源項目浮禾。它是用純java開發(fā)的伏嗜。是一...
    Bcome閱讀 2,818評論 0 7
  • 逅弈 轉(zhuǎn)載請注明原創(chuàng)出處,謝謝伐厌! 以前的日子 以前我們寫代碼時承绸,jar包都默認放在一個叫 /lib 的目錄下,然后...
    逅弈閱讀 2,883評論 3 45
  • maven是一款優(yōu)秀的服務(wù)構(gòu)建工具挣轨,基于約定優(yōu)于配置原則军熏,提供標(biāo)準(zhǔn)的服務(wù)構(gòu)建流程。maven的優(yōu)點不僅限于服務(wù)構(gòu)建...
    zhipingChen閱讀 3,936評論 0 4
  • title: mac系統(tǒng)下的Maven安裝配置及創(chuàng)建你的第一個Maven項目tags: mavencategori...
    codingXiaxw閱讀 3,284評論 2 3
  • Peace. 我特么考前再忍不住再因為他難受地睡不著覺卷扮,我就等著以后為我自己也為他哭不停吧荡澎。 今天晚上想的和寫的話...
    趁早退場閱讀 180評論 0 0