在內網環境中開發時,對maven等項目極不友好,由於不能鏈接到Maven中央倉庫,因此現有的解決方式是搭建一個maven私庫(固然,你要是想把包都經過lib的方式引入也行)。用Nexus搭建完並作完配置後,就獲得了一個嶄新的maven倉庫,一個依賴都沒有,比火星還荒涼。
下面有兩種方法能夠對這片不毛之地進行開墾。mysql
隨着業務功能複雜性上升和微服務架構的廣泛應用,開發過程當中所依賴的第三方包並不像我上大學寫做業時一隻手就能數過來,工程對應的本地Maven庫動輒上百兆,這就須要一個簡單快捷的方法將幾百個依賴都放到私庫上。sql
新建立一個sh腳本bash
#!/bin/bash # copy and run this script to the root of the repository directory containing files # this script attempts to exclude uploading itself explicitly so the script name is important # Get command line params while getopts ":r:u:p:" opt; do case $opt in r) REPO_URL="$OPTARG" ;; u) USERNAME="$OPTARG" ;; p) PASSWORD="$OPTARG" ;; esac done find . -type f -not -path './mavenimport\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;
腳本建立完畢
4.在當前目錄執行這個腳本,並加上maven私庫的帳號密碼,以及地址架構
./mavenimport.sh -u admin -p admin -r http://IP:PORT/repository/dataservice/
執行完畢後,刷新maven庫,就能夠看到上傳的包了。curl
我本地maven庫佔磁盤200M,上傳大概花費五分鐘左右。maven
當咱們maven庫已經造成規模,而且僅僅缺乏一兩個依賴的時候,咱們就經過手動上傳的方式添加依賴。微服務
固然,只要是人,總會出錯的,因此儘量地避免手動輸入,咱們在導入jar文件後,再添加一個資產,將pom文件也一塊兒導入,這樣就能避免手動輸入出現的錯誤。this
最後在倉庫裏查看上傳成功的依賴,檢查是否存在pom文件。
url
最後包都能順利下載,可是maven插件卻非暴力抵抗,不能提供下載,因而又在maven的配置中加上了私庫地址,而且着重加上了<mirrorOf>central</mirrorOf>這個標籤。spa
這樣本地項目的依賴和maven插件都恢復正常。
最後想起《火星救援》中的一段臺詞: