1)尋找一臺可以聯(lián)網(wǎng)的電腦,在上邊搭建nexus私服;
2)配置setting.xml文件,使得本地開(kāi)發(fā)環(huán)境依賴(lài)nexus私服:
首先在<mirrors>標簽下添加:
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://localhost:8080/nexus/content/groups/public</url>
</mirror>
然后再<profiles>標簽下添加:
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<!--必須配置以下插件庫依賴(lài),這樣Maven才會(huì )百分之百依賴(lài)私服,否則Maven在私服上找不到插件,在等待一點(diǎn)時(shí)間以后,就會(huì )自己去中央服務(wù)器上去下載,加上如下配置,則不會(huì )繞過(guò)私服。-->
<pluginRepositories>
<pluginRepository>
<id>central</id>
<!--這個(gè)地址已經(jīng)無(wú)所謂了-->
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
最后,在<settings>標簽下添加以下配置,激活上邊的<mirror>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
如果不理解鏡像<mirror>的含義,則可以查下其他資料。只有強行控制maven使之依賴(lài)于私服,才能在封閉的局域網(wǎng)內進(jìn)行maven開(kāi)發(fā),否則maven仍然會(huì )上中央服務(wù)器去下載依賴(lài)和插件,則會(huì )出現錯誤。
3)使用maven搭建開(kāi)發(fā)環(huán)境,并完成clean、package、test等動(dòng)作??傊粋€(gè)目的:使得nexus可以下載盡量多的插件和依賴(lài)。
4)拷貝nuxus(可能是bundle的形式或者是在war的形式)和.m2的兄弟目錄sonatype-work文件夾到局域網(wǎng)的web服務(wù)器上(當然能用usb接口,或者其他傳輸工具,否則只能跳樓了),然后啟動(dòng)web服務(wù)器。
5)使用上邊介紹的配置方式配置局域網(wǎng)內的開(kāi)發(fā)機setting.xml文件,使之完全依賴(lài)于部署在局域網(wǎng)內的私服。
至此,部署完畢。這里注意剛才的snatype-work文件夾,打開(kāi)這個(gè)目錄,可以看到在其下的nexus文件夾里存儲了nexus的很多數據,如索引、依賴(lài)、插件等。其中storage中存儲的是中央服務(wù)器、第三方組件等。大家可以自己打開(kāi)研究下。
另外,這樣可能在某些情況下,發(fā)現局域網(wǎng)內部署的私服上的插件和依賴(lài)不夠用,就可以采用上邊的方式在此在可以上網(wǎng)的機器上引入模擬局域網(wǎng)內的開(kāi)發(fā),使得引入需要的插件和依賴(lài)。如果已經(jīng)在局域網(wǎng)內的私服上部署了一些自己開(kāi)發(fā)的組件,為了不影響之前的工作,可以從局域網(wǎng)內把sonatype-work文件再拷貝到可以上網(wǎng)的電腦上,再次重復上邊的步驟。以上的辦法未必是解決這個(gè)問(wèn)題的最好辦法,僅供參考,如有更好的方法,歡迎各位網(wǎng)友留言賜教。
聯(lián)系客服