Maven面试题及答案
1、Maven有哪些優(yōu)點(diǎn)和缺點(diǎn)
優(yōu)點(diǎn):
1、簡(jiǎn)化項(xiàng)目依賴管理
2、方便與持續(xù)集成工具(Jenkins)整合
3、有助于多模塊項(xiàng)目開發(fā),比如一個(gè)模塊開發(fā)好后發(fā)布到倉(cāng)庫(kù),依賴該模塊時(shí)可以直接從遠(yuǎn)程倉(cāng)庫(kù)更新,不用自己手動(dòng)去編譯
4、有很多插件,便于擴(kuò)展,比如:生產(chǎn)站點(diǎn),自動(dòng)發(fā)布版本
缺點(diǎn):
1、maven是個(gè)龐大的工具,學(xué)習(xí)成本大
2、maven采用約定大于配置的策略,出現(xiàn)問題很難調(diào)試
3、當(dāng)依賴很多時(shí),m2倉(cāng)庫(kù)會(huì)使開發(fā)工具變卡
2、Maven的生命周期
maven有三大生命周期,分別為:
1、clean 周期:主要用于清理上一次構(gòu)建產(chǎn)生的文件,可以理解為刪除target目錄
2、默認(rèn)周期
主要階段包含:
1)process-resources 默認(rèn)處理src/test/resources/下的文件,將其輸出到src的classpath目錄中
2)compile 編譯src/main/java下的java文件,產(chǎn)生對(duì)應(yīng)的class
3)process-test-resources 默認(rèn)處理src/test/resources/下的文件,將其輸出到測(cè)試的classpath目錄中
4)test-compile 編譯src/test/java下的java文件,產(chǎn)生對(duì)應(yīng)的class
5)test 運(yùn)行測(cè)試用例
6)package 打包構(gòu)件,即生成對(duì)應(yīng)的jar, war等
7)install將構(gòu)件部署到本地倉(cāng)庫(kù)
8)deploy 部署構(gòu)件到遠(yuǎn)程倉(cāng)庫(kù)
3、site周期
主要階段包含:
site 產(chǎn)生項(xiàng)目的站點(diǎn)文檔
site-deploy 將項(xiàng)目的站點(diǎn)文檔部署到服務(wù)器
3、Maven常見的依賴范圍
- compile :默認(rèn)范圍,用于編譯
- provided:類似于編譯,但支持你期待jdk或者容器提供,類似于classpath
- runtime: 在執(zhí)行時(shí)需要使用
- test: 用于test任務(wù)時(shí)使用
- system:需要外在提供相應(yīng)的元素。通過(guò)systemPath來(lái)取得
- systemPath: 僅用于范圍為system。提供相應(yīng)的路徑
- optional: 當(dāng)項(xiàng)目自身被依賴時(shí),標(biāo)注依賴是否傳遞。用于連續(xù)依賴時(shí)使用
4、多模塊如何聚合
配置一個(gè)打包類型為pom的聚合模塊,然后在該pom中使用元素聲明要聚合的模塊
5、多模塊項(xiàng)目如何管理項(xiàng)目依賴的版本
通過(guò)在父模塊中聲明dependencyManagement和pluginManagement, 然后讓子模塊通過(guò)元素指定父模塊,這樣子模塊在定義依賴是就可以只定義groupId和artifactId,自動(dòng)使用父模塊的version,這樣統(tǒng)一整個(gè)項(xiàng)目的依賴的版本
6、如何保證項(xiàng)目傳遞依賴不會(huì)引起版本沖突
使用的元素將會(huì)引起沖突的元素排除
總結(jié)
以上是生活随笔為你收集整理的Maven面试题及答案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用bat脚本完成关机、滑动关机和重启
- 下一篇: HMAC 算法原理