Apache Maven是當今很是流行的項目構建和管理工具,它把開發人員從繁雜的項目依賴關係處理事務中解放出來,徹底自動化管理依賴問題。在Web應用開發過程當中,一般咱們會用到maven的archetype插件來生成項目框架,例如:
mvn archetype:generate -DgroupId=com.yourhost.app -DartifactId=your-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
但一般這個過程是虐心的。 現象: 用maven構建項目骨架時,速度很是慢,不管是在命令行中直接使用,仍是在IDE中使用。若是再加上網絡很差,那就更難熬了,喝完三杯咖啡都不見得能看到構建結果。以個人經驗,不少時候都要30分鐘左右............ 緣由: 要了解其中的緣由,須要知道maven是如何運做的。構建過程當中,咱們只是向maven提供了一些groupId、artifactId、archetypeArtifactId等信息,只有這些信息的狀況下maven是如何構建出整個項目的呢?它的知識來源於哪裏呢?答案是:
[DEBUG] -- end configuration -- [INFO] Generating project in Batch mode [DEBUG] Searching for remote catalog: http://repo.maven.apache.org/maven2/archetype-catalog.xml (一般就卡在這一步長達25+分鐘)
直接在瀏覽器打開這個連接的速度同樣很是慢。打開後經過瀏覽器的查看源碼功能,以下所示:
<?xml version="1.0" encoding="UTF-8"?> <archetype-catalog> <archetypes> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>maven-reactjs-blank-archetype</artifactId> <version>1.0.0</version> <description>Blank Project for React.js</description> </archetype> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>msgpack-rpc-jersey-blank-archetype</artifactId> <version>1.0.7</version> <description>Blank Project for Spring Boot + Jersey</description> </archetype> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>msgpack-rpc-jersey-blank-archetype</artifactId> <version>1.0.6</version> <description>Blank Project for Spring Boot + Jersey</description> </archetype> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>msgpack-rpc-jersey-blank-archetype</artifactId> <version>1.0.5</version> <description>Blank Project for Spring Boot + Jersey</description> </archetype> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>msgpack-rpc-jersey-blank-archetype</artifactId> <version>1.0.2</version> <description>Blank Project for Spring Boot + Jersey</description> </archetype> <archetype> <groupId>am.ik.archetype</groupId> <artifactId>mvc-1.0-blank-archetype</artifactId> ................... ................... 如下省略13W行......
複製文件到編輯器可知,文件長達13W行,文件大加上網絡緣由,致使訪問速度很慢。 解決方案: 如上分析可知,是因爲achetype-catalog.xml文件的訪問問題,致使了整個構建過程的緩慢,因此是否可以將文件保存到本地,成爲一種解決思路。翻閱Maven官方文檔能夠找到,確實是能夠的。官方連接以下:
http://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-catalog.html按照以下步驟:react
1)準備archetype-catalog.xml文件 方式1:經過瀏覽器查看http://repo.maven.org/maven2/archetype-catalog.xml頁源碼,複製到本地,命名爲archetype-catalog.xml。 方式2:經過命令行 curl http://repo.maven.org/maven2/archetype-catalog.xml > archetype-catalog.xml 2)將上述文件放置到maven的默認路徑下 注意,這不是指的安裝路徑,而是mvn運行時默認的存放repository的路徑,通常在用戶根目錄下的一個隱藏目錄,~/.m2。若是作過更改,能夠在maven的設置文件中查看 具體在哪一個位置,設置文件在maven安裝目錄/config/settings.xml中。 3)在構建時,在archetype:generate後加上 -DarchetypeCatalog=local參數。
解決,Have fun!再次嘗試構建項目骨架,飛通常的感受。apache
archetype-catalog.xml文件下載地址: 連接:http://pan.baidu.com/s/1pLo0s7T 密碼:32dy瀏覽器