亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Maven實(shí)現(xiàn)項(xiàng)目構(gòu)建工具

 更新時(shí)間:2022年07月15日 16:59:37   作者:輕狂客_零度  
本文主要介紹了Maven實(shí)現(xiàn)項(xiàng)目構(gòu)建工具,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1.Maven介紹

1.1Maven是什么

Maven項(xiàng)目對(duì)象模型(POM),可以通過(guò)一小段描述信息來(lái)管理項(xiàng)目的構(gòu)建,報(bào)告和文檔的項(xiàng)目管理工具軟件。

Maven 除了以程序構(gòu)建能力為特色之外,還提供高級(jí)項(xiàng)目管理工具。由于 Maven 的缺省構(gòu)建規(guī)則有較高的可重用性,所以常常用兩三行 Maven 構(gòu)建腳本就可以構(gòu)建簡(jiǎn)單的項(xiàng)目。由于 Maven 的面向項(xiàng)目的方法,許多 Apache Jakarta 項(xiàng)目發(fā)文時(shí)使用 Maven,而且公司項(xiàng)目采用 Maven 的比例在持續(xù)增長(zhǎng)。

Maven這個(gè)單詞來(lái)自于意第緒語(yǔ)(猶太語(yǔ)),意為知識(shí)的積累,最初在Jakata Turbine項(xiàng)目中用來(lái)簡(jiǎn)化構(gòu)建過(guò)程。當(dāng)時(shí)有一些項(xiàng)目(有各自Ant build文件),僅有細(xì)微的差別,而JAR文件都由CVS來(lái)維護(hù)。于是希望有一種標(biāo)準(zhǔn)化的方式構(gòu)建項(xiàng)目,一個(gè)清晰的方式定義項(xiàng)目的組成,一個(gè)容易的方式發(fā)布項(xiàng)目的信息,以及一種簡(jiǎn)單的方式在多個(gè)項(xiàng)目中共享JARs

知識(shí)點(diǎn)總結(jié):

Maven項(xiàng)目對(duì)象模型(POM) 主要管理項(xiàng)目的構(gòu)建,報(bào)告和文檔的項(xiàng)目管理工具軟件。

1.2為什么要使用maven

由于 Java 的生態(tài)非常豐富,無(wú)論你想實(shí)現(xiàn)什么功能,都能找到對(duì)應(yīng)的工具類,這些工具類都是以 jar包的形式出現(xiàn)的,例如 Spring,SpringMVC、MyBatis、數(shù)據(jù)庫(kù)驅(qū)動(dòng),等等,都是以 jar包的形式出現(xiàn)的,jar包之間會(huì)有關(guān)聯(lián),在使用一個(gè)依賴之前,還需要確定這個(gè)依賴所依賴的其他依賴,所以,當(dāng)項(xiàng)目比較大的時(shí)候,依賴管理會(huì)變得非常麻煩臃腫,這是 Maven 解決的第一個(gè)問(wèn)題。

Maven 還可以處理多模塊項(xiàng)目。簡(jiǎn)單的項(xiàng)目,單模塊分包處理即可,如果項(xiàng)目比較復(fù)雜,要做成多模塊項(xiàng)目,例如一個(gè)電商項(xiàng)目有訂單模塊、會(huì)員模塊、商品模塊、支付模塊...,一般來(lái)說(shuō),多模塊項(xiàng)目,每一個(gè)模塊無(wú)法獨(dú)立運(yùn)行,要多個(gè)模塊合在一起,項(xiàng)目才可以運(yùn)行,這個(gè)時(shí)候,借助 Maven 工具,可以實(shí)現(xiàn)項(xiàng)目的一鍵打包。

Maven 之前,我們更多的是使用Ant的項(xiàng)目構(gòu)建工具,Ant 有一個(gè)特點(diǎn),每次都得寫,每次都寫的差不多,配置也臃腫。所以,后來(lái)搞出來(lái)Maven。Maven就是最先進(jìn)的版本構(gòu)建工具嗎?不是的,只不過(guò),目前在 Java 領(lǐng)域 Maven 使用比較多。除了 Maven,還有 Gradle。

2.Maven安裝

Maven是 Java項(xiàng)目,因此必須先安裝 JDK。

2.1下載Maven:

下載地址:http://maven.apache.org/download.cgi

2.2解壓并配置

bin: 該目錄包含了mvn運(yùn)行的腳本,分別為mvn、mvn.bat、mvnDebug、mvnDebug.bat和m2.conf,這些腳本用來(lái)配置 Java 命令,準(zhǔn)備 CLASSPATH 和相關(guān)的 Java 系統(tǒng)屬性,然后執(zhí)行 Java 命令
boot: 該目錄只包含一個(gè)文件,以maven 3.0為例,該文件為plexus-classworlds-2.2.3.jar。plexus-classworlds是一個(gè)類加載器框架,相對(duì)于默認(rèn)的 Java 類加載器,它提供了更豐富的語(yǔ)法以方便配置,Maven 使用該框架加載自己的類庫(kù)。
conf: 該目錄包含了要給非常重要的文件settings.xml。直接修改該文件,就能再機(jī)器上全局地定制 Maven 的行為。一般情況下,我們更偏向于復(fù)制該文件至/.m2/目錄下(表示用戶目錄),然后修改該文件,在用戶范圍定制 Maven 的行為。
lib: 該目錄包含了所有 Maven 運(yùn)行時(shí)需要的 Java 類庫(kù),Maven 本身是分模塊開發(fā)的,因此用戶能看到諸如maven-core-3.0.jar和maven-model-3.0.jar之類的文件。
LICENSE: 該文件記錄了 Maven 使用的軟件許可證
NOTICE:該文件記錄了 Maven 包含的第三方軟件。
README.txt: 該文件則包含了 Maven 的簡(jiǎn)要介紹,包括安裝需求以及如何安裝的簡(jiǎn)要指令等。

2.3編輯Maven環(huán)境變量

2.3.1檢查JDK環(huán)境變量

1.配置Java_Home環(huán)境變量

2.通過(guò)DOS命令窗口 檢查配置是否有效

2.3.2 配置maven_home環(huán)境變量

1.配置MAVEN_HOME

2.配置環(huán)境變量

3.檢查Maven是否有效 重啟DOS窗口

3.Maven配置

實(shí)際上,沒(méi)有特殊需求的話,安裝好之后直接就可以用了。一般來(lái)說(shuō),還是需要稍微配置一下,比如中央倉(cāng)庫(kù)的問(wèn)題。Maven默認(rèn)使用自己的中央倉(cāng)庫(kù),使用起來(lái)網(wǎng)速比較慢,這個(gè)時(shí)候,可以通過(guò)修改配置文件,將倉(cāng)庫(kù)改成國(guó)內(nèi)的鏡像倉(cāng)庫(kù),國(guó)內(nèi)倉(cāng)庫(kù)使用較多的是阿里巴巴的倉(cāng)庫(kù)。

3.1倉(cāng)庫(kù)類型

倉(cāng)庫(kù)類型 說(shuō)明 
本地倉(cāng)庫(kù)

就是你自己電腦上的倉(cāng)庫(kù),每個(gè)人電腦上都有一個(gè)倉(cāng)庫(kù),默認(rèn)位置在當(dāng)前用戶名\.m2\repository

私服倉(cāng)庫(kù)

一般來(lái)說(shuō)是公司內(nèi)部搭建的 Maven私服,處于局域網(wǎng)中,訪問(wèn)速度較快,這個(gè)倉(cāng)庫(kù)中存放的 jar一般就是公司內(nèi)部自己開發(fā)的 jar

中央倉(cāng)庫(kù)

由 Apache團(tuán)隊(duì)來(lái)維護(hù),包含了大部分的 jar,早期不包含Oracle數(shù)據(jù)庫(kù)驅(qū)動(dòng),從 2019年 8月開始,包含了 Oracle 驅(qū)動(dòng)

現(xiàn)在存了三個(gè)倉(cāng)庫(kù),那么jar包如何查找呢?

3.2本地倉(cāng)庫(kù)配置

本地倉(cāng)庫(kù)默認(rèn)位置在當(dāng)前用戶名\.m2\repository,這個(gè)位置可以自定義,但是不建議大家自定義這個(gè)地址,有幾個(gè)原因:

  • 雖然所有的本地的 jar都放在這個(gè)倉(cāng)庫(kù)中,但是并不會(huì)占用很大的空間。
  • 默認(rèn)的位置比較隱蔽,不容易碰到

技術(shù)上來(lái)說(shuō),當(dāng)然是可以自定義本地倉(cāng)庫(kù)位置的,在 conf/settings.xml中自定義本地倉(cāng)庫(kù)位置:

<localRepository>f:\My-Maven-Repository</localRepository>

3.3遠(yuǎn)程鏡像配置

由于默認(rèn)的中央倉(cāng)庫(kù)下載較慢,因此,也可以將遠(yuǎn)程倉(cāng)庫(kù)地址改為阿里巴巴的鏡像倉(cāng)庫(kù)地址:

<mirror>
  <id>alimaven</id>
  <mirrorOf>central</mirrorOf>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

這段配置,加在 settings.xml中的 mirrors節(jié)點(diǎn)中:

4.Maven常用命令

Maven中有一些常見的命令,如果使用Eclipse需要手動(dòng)敲命令,如果使用 IDEA的話,可以不用命令,直接點(diǎn)點(diǎn)點(diǎn)就可以了

常用命令 中文含義 說(shuō)明

mvn clean

清理

這個(gè)命令可以用來(lái)清理已經(jīng)編譯好的文件

mvn compile

編譯

將 Java代碼編譯成Class文件

mvn test

測(cè)試

項(xiàng)目測(cè)試

mvn package

打包

根據(jù)用戶的配置,將項(xiàng)目打成 jar包或者 war包

mvn install

安裝/部署

手動(dòng)向本地倉(cāng)庫(kù)安裝一個(gè) jar

mvn deploy

上傳

將 jar上傳到私服

這里需要注意的是,這些命令都不是獨(dú)立運(yùn)行的,它有一個(gè)順序。舉個(gè)簡(jiǎn)單例子:

我想將jar上傳到私服,那么就要構(gòu)建jar,就需要執(zhí)行package命令,要打包,當(dāng)然也需要測(cè)試,那就要走mvn test 命令,要測(cè)試就要先編譯.............................. ,因此,最終所有的命令都會(huì)執(zhí)行一遍。不過(guò),開發(fā)者也可以手動(dòng)配置不執(zhí)行某一個(gè)命令,這就是跳過(guò)。一般來(lái)說(shuō),除了測(cè)試,其他步驟都不建議跳過(guò)。

當(dāng)然,如果開發(fā)者使用了 IDEA,這些命令不用手動(dòng)敲,點(diǎn)一下就行:

1.validate 驗(yàn)證工程是否正確,所有需要的資源是否可用。 命令: mvn validate
2.compile 將文件由.java文件編譯為.class文件 動(dòng)態(tài)生成target文件目錄 命令: mvn compile
3.clean 清空target文件目錄 命令: mvn clean
4.test 執(zhí)行測(cè)試方法是否正確 命令: mvn test
5.package 將項(xiàng)目的target文件打包為jar包文件 命令: mvn package
6.verify 對(duì)集成測(cè)試的結(jié)果進(jìn)行檢查,以保證質(zhì)量達(dá)標(biāo) 命令: mvn verify
7.install 安裝打包的項(xiàng)目到本地倉(cāng)庫(kù),以供其他項(xiàng)目使用 命令: mvn install
8.site 項(xiàng)目站點(diǎn)文檔創(chuàng)建的處理 命令: mvn site
9.deploy 拷貝最終的工程包到遠(yuǎn)程倉(cāng)庫(kù)中,以共享給其他開發(fā)人員和工程 (了解 用不到)

4.1 通過(guò)命令來(lái)構(gòu)建項(xiàng)目

可以直接通過(guò)命令來(lái)構(gòu)建一個(gè) Maven項(xiàng)目,不過(guò)在實(shí)際開發(fā)中,一般使用Eclipse或者 IDEA就可以直接創(chuàng)建 Maven項(xiàng)目了。創(chuàng)建命令:

mvn archetype:generate

需要注意:第一次使用該命令,會(huì)先下載構(gòu)建項(xiàng)目所需的jar包

項(xiàng)目創(chuàng)建成功后,就兩個(gè)文件:

說(shuō)明對(duì)一個(gè)任何一個(gè)項(xiàng)目而言,最最核心的就是這兩個(gè)。

pom.xml中,則定義了所有的項(xiàng)目配置

4.2 對(duì)項(xiàng)目進(jìn)行打包

接下來(lái),我們通過(guò)mvn package命令可以將剛剛創(chuàng)建的項(xiàng)目打成一個(gè) jar包。

在打包之前,需要配置JDK的版本至少為 7以上,因此,我們還需要手動(dòng)修改一下pom.xml 文件,即添加如下配置:

<!-- java版本 --> 
	<profile>
		  <id>jdk-11</id>
		  <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>11</jdk>
		  </activation>
 
		  <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <maven.compiler.compilerVersion>11</maven.compiler.compilerVersion>
		  </properties>
	</profile>

執(zhí)行打包命令,注意執(zhí)行所有命令時(shí),命令行要定位到 pom.xml文件所在的目錄,看到如下提示,表示項(xiàng)目打包成功。

4.3 將項(xiàng)目安裝到本地倉(cāng)庫(kù)

如果需要將項(xiàng)目安裝到本地倉(cāng)庫(kù),可以直接執(zhí)行 mvn install命令,注意,mvn install命令會(huì)包含上面的 mvn package 過(guò)程。

安裝到本地倉(cāng)庫(kù)之后,這個(gè)時(shí)候,點(diǎn)開自己的本地倉(cāng)庫(kù),就可以看到相關(guān)的 jar了。

到此這篇關(guān)于Maven實(shí)現(xiàn)項(xiàng)目構(gòu)建工具的文章就介紹到這了,更多相關(guān)Maven項(xiàng)目構(gòu)建工具內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot+Redis實(shí)現(xiàn)后端接口防重復(fù)提交校驗(yàn)的示例

    SpringBoot+Redis實(shí)現(xiàn)后端接口防重復(fù)提交校驗(yàn)的示例

    本文將結(jié)合實(shí)例代碼,介紹SpringBoot+Redis實(shí)現(xiàn)后端接口防重復(fù)提交校驗(yàn)的示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • JAVA實(shí)現(xiàn)深拷貝的幾種方式代碼

    JAVA實(shí)現(xiàn)深拷貝的幾種方式代碼

    這篇文章主要給大家介紹了關(guān)于JAVA實(shí)現(xiàn)深拷貝的幾種方式,在Java中深拷貝和淺拷貝是用來(lái)復(fù)制對(duì)象的兩種不同方式,深拷貝會(huì)對(duì)所有數(shù)據(jù)類型進(jìn)行拷貝,包括對(duì)象所包含的內(nèi)部對(duì)象,需要的朋友可以參考下
    2023-09-09
  • 詳解Java數(shù)據(jù)庫(kù)連接JDBC基礎(chǔ)知識(shí)(操作數(shù)據(jù)庫(kù):增刪改查)

    詳解Java數(shù)據(jù)庫(kù)連接JDBC基礎(chǔ)知識(shí)(操作數(shù)據(jù)庫(kù):增刪改查)

    這篇文章主要介紹了詳解Java數(shù)據(jù)庫(kù)連接JDBC基礎(chǔ)知識(shí)(操作數(shù)據(jù)庫(kù):增刪改查),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Flowable?ReceiveTask使用場(chǎng)景分析

    Flowable?ReceiveTask使用場(chǎng)景分析

    這篇文章主要為大家介紹了Flowable?ReceiveTask使用場(chǎng)景分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Java中不可或缺的關(guān)鍵字volatile詳析

    Java中不可或缺的關(guān)鍵字volatile詳析

    volatile是Java提供的一種輕量級(jí)的同步機(jī)制,下面這篇文章主要給大家介紹了關(guān)于Java中不可或缺的關(guān)鍵字volatile的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • IDEA下lombok安裝及找不到get,set的問(wèn)題的解決方法

    IDEA下lombok安裝及找不到get,set的問(wèn)題的解決方法

    這篇文章主要介紹了IDEA下lombok安裝及找不到get,set的問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Java8 Lambda表達(dá)式模板方法實(shí)現(xiàn)解析

    Java8 Lambda表達(dá)式模板方法實(shí)現(xiàn)解析

    這篇文章主要介紹了Java8 Lambda表達(dá)式模板方法實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 一文帶你看懂SpringBoot中的全局配置文件

    一文帶你看懂SpringBoot中的全局配置文件

    這篇文章主要介紹了一文帶你看懂SpringBoot中的全局配置文件,全局配置文件能夠?qū)σ恍┠J(rèn)配置值進(jìn)行修改,Spring Boot使用一個(gè)application.properties或者application.yaml的文件作為全局配置文件,需要的朋友可以參考下
    2023-08-08
  • mybatis-plus動(dòng)態(tài)表名實(shí)現(xiàn)方法

    mybatis-plus動(dòng)態(tài)表名實(shí)現(xiàn)方法

    本文主要介紹了mybatis-plus動(dòng)態(tài)表名實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 使用Java實(shí)現(xiàn)類似Comet風(fēng)格的web app

    使用Java實(shí)現(xiàn)類似Comet風(fēng)格的web app

    這篇文章主要介紹了使用Java實(shí)現(xiàn)類似Comet風(fēng)格的web app的方法,包括客戶端的響應(yīng)和XML解析等功能,需要的朋友可以參考下
    2015-11-11

最新評(píng)論