日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

api报错 javaee maven_JavaEE关于Maven的配置与学习

發(fā)布時間:2023/12/10 java 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 api报错 javaee maven_JavaEE关于Maven的配置与学习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

關(guān)于Maven的配置與學(xué)習(xí)

1. 簡介

官方說法:Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

個人譯文:Apache Maven是一款軟件項目管理及綜合工具。基于項目對象模型這個概念,Maven能夠從一個中心信息塊管理項目的構(gòu)建,報告和文檔。

個人對于Maven的直觀感受就是工程項目被生命化了,從一個項目的初始到開發(fā)結(jié)束,它都在幫助開發(fā)者做后援工作,相當(dāng)于助長劑。對于我來說主要的是項目依賴問題,不用自己去拷j(luò)ar包確實是方便許多。

2. Windows下安裝和配置

某些IDE已經(jīng)是集成了Maven了(例如:idea),但是這里還是說一下怎么從官網(wǎng)下載并且配置環(huán)境變量

2.1 下載Maven

Maven官網(wǎng):https://maven.apache.org/

進入官網(wǎng)后可以點擊Download下拉可見有多個下載鏈接。如果不是特殊愛好/用途,下載頭兩個壓縮包其中一個解壓就可以。

2.2 配置Maven

解壓后進入我的電腦(右擊)->屬性->高級系統(tǒng)設(shè)置->環(huán)境變量,進入后點擊新建..,變量名為M2_HOME,變量值為自己解壓后Maven的位置,我這里為C:\tool\apache-maven-3.5.0

經(jīng)過上面的配置變量已經(jīng)有了,但是還需要配置Windows系統(tǒng)變量,這樣才找的到Maven的路徑(在cmd模式下使用mvn命令),這里只需要將%M2_HOME%\bin;加入到Path的最前端就可以了,如下圖:

通過以上的配置在cmd下鍵入mvn -version出來一大串信息,包括Maven路徑、版本等信息就說明配置成功

2.3 配置Maven鏡像和本地倉庫

本地倉庫會從把從別的地方的jar包下載后本地保存,相當(dāng)于一個緩存,如果說不配置它默認(rèn)會下載至${user.home}/.m2/repository,如果需要配置到一個特定的目錄只需要進入Maven的解壓目錄/conf/setting.xml文件,使用編輯器打開,然后修改里面的配置C:/...../localRepository

在使用Maven管理依賴時,它可能會去別的倉庫下載jar包,有可能網(wǎng)速會受到限制,所以使用鏡像下載是一個比較好的選擇,這里我使用了阿里的鏡像。

在setting.xml,我們可以看到下方有這一個項,這里只需要向里面添加代碼

alimaven

central

aliyun?maven

http://maven.aliyun.com/nexus/content/groups/public/

3. Maven倉庫

關(guān)于Maven的倉庫這里可以簡單的理解為存放jar包的地方,一個云盤。

但是,關(guān)于存放的位置還是有略微的區(qū)別,有遠(yuǎn)近之分,近的看來有本地倉庫和私服遠(yuǎn)的有中央倉庫和其他私人倉庫本地倉庫:通過本地存儲依賴包,在項目構(gòu)建需要時直接提供

私服:由個人/組織搭建,在局域網(wǎng)上的服務(wù)器運行,由該服務(wù)器提供依賴包

中央倉庫:Maven依賴包的主要來源

其他私人倉庫:需要使用的依賴包在他人服務(wù)器而不在在中央倉庫沒有的情況下,需要自己配置遠(yuǎn)程的倉庫,它在中央倉庫找不到下會去該倉庫查找,其配置如下:

companyname.lib1

http://download.companyname.org/maven2/lib1

按照個人理解,畫了一個圖,如下:

4. Maven的生命周期

4.1 clean周期

pre-clean

執(zhí)行一些清理前需要完成的工作

clean

清理上一次構(gòu)建生成的文件

post-clean

執(zhí)行一些清理后需要完成的工作

在每一個周期有相應(yīng)的Maven命令,比如,在重新構(gòu)建項目需要把前面的清除,則可以在當(dāng)前項目目錄下cmd模式輸入mvn clean?||?mvn post-clean

4.2 default周期

在default周期中包含了很多個階段,其中這里列出比較常用的

compile

編譯該項目的源代碼

test

運行測試使用合適的單元測試框架

package

提取編譯后的代碼,并在其分發(fā)格式打包,如JAR,WAR或EAR文件

install

將包安裝到本地存儲庫,它可以用作當(dāng)?shù)仄渌椖康囊蕾?/p>

deploy

復(fù)制最終的包到遠(yuǎn)程倉庫與其他開發(fā)者和項目共享

關(guān)于install,可以使用mvn install命令將我們自己的項目添加/安裝到我們的本地倉庫,比如,我們在多模塊開發(fā)時,因為項目的依賴有些模塊是完全相同的,所以我們可以建立一個父工程,讓其他相關(guān)的模塊繼承該父工程。父工程的打包方式是pom,這里在子工程中編譯項目時就會遇到父工程依賴不存在的一些錯誤,這時就需要使用上述的命令mvn install將我們的項目安裝到本地倉庫。對于Maven工程,自己寫的庫需要打成jar包讓其他項目依賴,也可以使用該命令

4.3 site周期

siet生命周期能夠生成一些網(wǎng)頁信息(基于POM所包含的信息)

pre-site

執(zhí)行一些在生成項目站點之前需要完成的工作

site

生成項目站點文檔

post-site

執(zhí)行一些在生成項目站點之后需要完成的工作

site-deploy

將生成的項目站點發(fā)布到服務(wù)器上

當(dāng)我使用之前博客上的Spring Boot會員系統(tǒng)測試site命令時執(zhí)行了mvn site可在項目路徑下看到target/site/index.html,點開后有關(guān)于該項目的各種依賴的詳細(xì)信息,如下圖:

在上述的周期中對應(yīng)著各種Maven命令,有些命令可以同時鍵入,比如:mvn clean package,每個命令的執(zhí)行都與Maven提供的插件有著一些密不可分的關(guān)系,這里可以看下這里的鏈接:

https://www.yiibai.com/maven/maven_build_life_cycle.html

https://blog.csdn.net/chaofanwei/article/details/36197183

https://www.cnblogs.com/build-up/p/4975827.html

https://www.cnblogs.com/avivaye/p/5341341.html

5. 項目開發(fā)中的Exception

這里舉出兩個例子,其一:

maven打包時報錯:Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test

這里可能是因為在打包時會自動執(zhí)行測試命令,而Junit測試不通過導(dǎo)致的打包不成功,只需要添加下面的配置即可:

org.apache.maven.plugins

maven-surefire-plugin

2.4.2

true

其二:

在web項目中使用servlet和jsp時需要引入依賴來解決錯誤,但是在web發(fā)布時打成war包部署到tomcat就會報錯,提示信息大概是類之間有沖突。這是因為tomcat已經(jīng)有包含了servlet的依賴包,因此報錯,這里只要在servlet和jsp的依賴中加入一個scope配置,如下:

javax.servlet

jsp-api

2.0

provided

在上面的依賴的scope中包含了幾個選項,主要如下:

compile

編譯(compile)時需要,測試時需要,運行時需要,打包時需要

provided

編譯(compile)時需要,測試(test)時也需要 ? ,運行時不需要,打包時不需要

runtime

編譯時不需要,測試時需要,運行時需要,打包時需要

test

編譯時不需要,測試時需要,運行時不需要,打包也不需要

除了以上還有一個是system,但是個人沒有怎么使用所以這里不做說明

6. 總結(jié)

關(guān)于以上的東西,個人在見解上可能還存在偏差,但是,Maven作為項目管理的一個工具,只需要把工具的主要功能發(fā)揮出來就行了。現(xiàn)在該要糾結(jié)的不應(yīng)該是Maven存在的那些復(fù)雜的東西,而是把自己的代碼寫好先。

總結(jié)

以上是生活随笔為你收集整理的api报错 javaee maven_JavaEE关于Maven的配置与学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。