maven常见面试题
一、說說你熟悉哪些maven命令?
mvn archetype:generate 創建Maven項目
mvn compile 編譯源代碼
mvn deploy 發布項目
mvn test-compile 編譯測試源代碼
mvn test 運行應用程序中的單元測試
mvn site 生成項目相關信息的網站
mvn clean 清除項目目錄中的生成結果
mvn package 根據項目生成的jar
mvn install 在本地Repository中安裝jar
mvn eclipse:eclipse 生成eclipse項目文件
mvnjetty:run 啟動jetty服務
mvntomcat:run 啟動tomcat服務
mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳過測試類
二、如何解決依賴傳遞引起的版本沖突?
可通過dependency的exclusion元素排除掉依賴。
三、說說maven的依賴原則
最短路徑原則(依賴傳遞的路徑越短越優先)
pom文件申明順序優先(路徑長度一樣,則先申明的優先)
覆寫原則(當前pom文件里申明的直接覆蓋父工程傳過來的)
四、說說依賴的解析機制?
當依賴的范圍是 system 的時候,Maven 直接從本地文件系統中解析構件。
根據依賴坐標計算倉庫路徑,嘗試直接從本地倉庫尋找構件,如果發現對應的構件,就解析成功。如果在本地倉庫不存在相應的構件,就遍歷所有的遠程倉庫,發現后,下載并解析使用。如果依賴的版本是 RELEASE 或 LATEST,就基于更新策略讀取所有遠程倉庫的元數據文件(groupId/artifactId/maven-metadata.xml),將其與本地倉庫的對應元合并后,計算出RELEASE 或者 LATEST 真實的值,然后基于該值檢查本地倉庫,或者從遠程倉庫下載。如果依賴的版本是 SNAPSHOT,就基于更新策略讀取所有遠程倉庫的元數據文件,將它與本地倉庫對應的元數據合并,得到最新快照版本的值,然后根據該值檢查本地倉庫,或從遠程倉庫下載。如果最后解析得到的構件版本包含有時間戳,先將該文件下載下來,再將文件名中時間戳信息刪除,剩下 SNAPSHOT 并使用(以非時間戳的形式使用)。
五、說說插件的解析機制
與依賴的構件一樣,插件也是基于坐標保存在Maven倉庫中。在用到插件的時候會先從本地倉庫查
找插件,如果本地倉庫沒有則從遠程倉庫查找插件并下載到本地倉庫。與普通的依賴構件不同的
是,Maven會區別對待普通依賴的遠程倉庫與插件的遠程倉庫。前面提到的配置遠程倉庫只會對普
通的依賴有效果。當Maven需要的插件在本地倉庫不存在時是不會去我們以前配置的遠程倉庫查找
插件的,而是需要有專門的插件遠程倉庫。
總結
以上是生活随笔為你收集整理的maven常见面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Arduino - pH传感器
- 下一篇: RabbitMQ核心模式