Java全棧程序員之06:IDEA中MAVEN項(xiàng)目依賴及運(yùn)行

? ? ? ??MAVEN已經(jīng)成為事實(shí)上的企業(yè)項(xiàng)目開發(fā)中的項(xiàng)目類型。無論是IDEA還是Eclipse,都已經(jīng)默認(rèn)支持創(chuàng)建MAVEN項(xiàng)目。嚴(yán)格意義上來說,MAVEN不是一種新的JavaEE項(xiàng)目類型。它凌駕于所以的項(xiàng)目類型上面,是對(duì)之前項(xiàng)目的一種“管理”。如果我們創(chuàng)建了MAVEN項(xiàng)目,那么會(huì)很方便的干這兩件事情:

? ? ? ??1:管理所有的依賴包。其中一個(gè)例子是,以往我們要引入一個(gè)第三方的jar包,需要把該jar包從網(wǎng)上(或者其它地方)下載回來,然后引入到項(xiàng)目中。而現(xiàn)在,我們只要在pom文件中引入改jar包的標(biāo)識(shí)符,然后maven插件會(huì)自動(dòng)幫我們下載該jar包并引入到項(xiàng)目中來。

? ? ? ??2:方便我們編譯、執(zhí)行、部署項(xiàng)目。

? ? ? ??且看maven項(xiàng)目在IDEA中如何運(yùn)行。

1.創(chuàng)建parent項(xiàng)目

? ? ? ??我假設(shè)你的項(xiàng)目,不會(huì)簡單到只有一個(gè)Project(在IDEA中更多的稱之為Module),所遇,基于一般的做法,我們首先會(huì)創(chuàng)建一個(gè)父項(xiàng)目。

? ? ? ??該父項(xiàng)目會(huì)定義一些通用配置,比如會(huì)整個(gè)系統(tǒng)所使用的JDK版本,或者引入的通用的jar包的版本。

? ? ? ??選擇new project,如下,

? ? ? ??Next,在此頁面,定義groupid和標(biāo)識(shí)符和版本號(hào),

? ? ? ??Next,定義項(xiàng)目名,module名。注意,module名很重要,我們定義為:test01.parent,

? ? ? ??接下來,可以enable auto-import,

? ? ? ??Pom文件就是配置文件,是parent中我們唯一需要?jiǎng)拥奈募?,在這個(gè)文件中,我們目前要做的就是把項(xiàng)目的JDK版本定義為1.10,如下,

<?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>com.zuikc</groupId>

? ? <artifactId>test01</artifactId>

? ? <packaging>pom</packaging>

? ? <version>1.0.1</version>

? ? <properties>

? ? ? ? <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

? ? ? ? <maven.compiler.encoding>UTF-8</maven.compiler.encoding>

? ? ? ? <java.version>1.10</java.version>

? ? ? ? <maven.compiler.source>1.10</maven.compiler.source>

? ? ? ? <maven.compiler.target>1.10</maven.compiler.target>

? ? </properties>

</project>

2.創(chuàng)建工具項(xiàng)目

? ? ? ??有了parent,讓我們創(chuàng)建工具項(xiàng)目吧。

? ? ? ??Next。注意,下圖紅框中的設(shè)置是自動(dòng)帶過來的,一般不需要?jiǎng)印odule的標(biāo)識(shí)取名為test01.common。一般這種項(xiàng)目,在實(shí)際的工作中,是用來放置各種工具類的。

? ? ? ??Next,

? ? ? ??Finish之后,可以看到當(dāng)前module的pom文件中,指定了parent。

? ? ? ??為了演示期間,讓我們隨便創(chuàng)建一個(gè)很簡單的工具類吧,這個(gè)工具類中,只有一個(gè)加法方法。

? ? ? ??如下,

package com.zuikc.test01.common;

public class Mather {

? ? public static final int add(int a, int b){

? ? ? ? return a+b;

? ? }

}

3.創(chuàng)建UI層項(xiàng)目

? ? ? ??接下來,讓我們創(chuàng)建UI層。當(dāng)然,實(shí)際工作中,可能你的設(shè)計(jì)是標(biāo)準(zhǔn)的三層架構(gòu),那無非也就是多創(chuàng)建幾個(gè)module。另外,UI層可能是一個(gè)web project,也有可能是像本例一樣是個(gè)console。那都無所謂,MAVEN項(xiàng)目的一個(gè)優(yōu)點(diǎn)是,你甚至可以隨意將一個(gè)console項(xiàng)目變成一個(gè)web project。

? ? ? ??讓我們繼續(xù)創(chuàng)建UI層,

? ? ? ??Next,

? ? ? ??Next,

? ? ? ??Finish。

? ? ? ??在本項(xiàng)目的pom文件中,我們要設(shè)置自己依賴了common,所以,我們要配置下圖紅框中的內(nèi)容。

? ? ? ??現(xiàn)在,為了測試期間,讓我們創(chuàng)建一個(gè)main類,

? ? ? ??代碼如下,

package com.zuikc.test01.ui;

import com.zuikc.test01.common.Mather;

public class Sample01 {

? ? public static void main(String[] args) {

? ? ? ? int re = Mather.add(1,2);

? ? ? ? System.out.println(re);

? ? }

}

4.exec-maven-plugin插件

? ? ? ??要以MAVEN的形式來運(yùn)行console項(xiàng)目,我們需要添加exec-maven-plugin插件。怎么添加呢?

? ? ? ??很簡單的,只要在UI項(xiàng)目的pom中增加如下,

? ? <build>

? ? ? ? <plugins>

? ? ? ? ? ? <plugin>

? ? ? ? ? ? ? ? <groupId>org.codehaus.mojo</groupId>

? ? ? ? ? ? ? ? <artifactId>exec-maven-plugin</artifactId>

? ? ? ? ? ? ? ? <version>1.6.0</version>

? ? ? ? ? ? ? ? <executions>

? ? ? ? ? ? ? ? ? ? <execution>

? ? ? ? ? ? ? ? ? ? ? ? <goals>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <goal>exec</goal>

? ? ? ? ? ? ? ? ? ? ? ? </goals>

? ? ? ? ? ? ? ? ? ? </execution>

? ? ? ? ? ? ? ? </executions>

? ? ? ? ? ? </plugin>

? ? ? ? </plugins>

? ? </build>

? ? ? ??看圖,

? ? ? ??當(dāng)保存之后,maven就會(huì)從中央倉儲(chǔ)(mvnrepository.com)中去下載這個(gè)插件(其實(shí)主要就是一些jar包)到本地。

5.配置運(yùn)行console

? ? ? ??打開配置,

? ? ? ??點(diǎn)擊+號(hào),增加一個(gè)maven配置,

? ? ? ??像如下進(jìn)行配置,

? ? ? ??保存后進(jìn)行run,

? ? ? ??第一次執(zhí)行,會(huì)出現(xiàn)download,

? ? ? ??這些down下來的文件是在哪呢?是在一個(gè)叫做maven本地倉儲(chǔ)的地方,它默認(rèn)就是idea安裝目錄的plugs下,如下所示:

? ? ? ??Ok,回過頭來說,如果執(zhí)行成功就會(huì)出現(xiàn)下面的輸出。

6.Maven clean和install

? ? ? ??如果我們r(jià)un的時(shí)候找不到common。就說明我們的common項(xiàng)目還沒安裝到maven的本地倉儲(chǔ)中。那該怎么辦呢?當(dāng)然是install了。

? ? ? ??有兩種方式,可以打開maven的操作工作臺(tái),如下,

? ? ? ??如圖,

? ? ? ??每個(gè)項(xiàng)目都有自己的lifecycle,可以在這個(gè)工作臺(tái)中進(jìn)行clean、編譯或者install等。依次,我們install parent、common、ui。成功之后,我們就可以在本地倉儲(chǔ)中看到自己編寫的項(xiàng)目咯。

? ? ? ??感謝關(guān)注“碼農(nóng)星球”。本文版權(quán)屬于“碼農(nóng)星球”。我們提供咨詢和培訓(xùn)服務(wù),關(guān)于本文有任何困惑,請(qǐng)關(guān)注并聯(lián)系我們。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容