本章是《實戰maven私有倉庫》系列的第三篇,在前兩章中,我們先在linux搭建maven私有倉庫,然后在開發環境使用此倉庫,本章我們在docker下快速搭建maven私有倉庫,然后像前面章節的實戰一樣使用它;
本文地址:http://blog.csdn.net/boling_cavalry/article/details/79111740
實戰環境
- 本次實戰的環境是Ubuntu16,安裝的Docker版本是17.03.2-ce;
- 本次用到的二方庫工程mvnDemoLib,和《實戰maven私有倉庫三部曲之二:上傳到私有倉庫》中用到的mvnDemoLib是同一個,源碼的git地址是:git@github.com:zq2599/blog_demos.git,用瀏覽器訪問的地址是:https://github.com/zq2599/blog_demos,這里面有多個工程,本次用到的工程如下圖紅框所示:
注意事項
本次實戰要用到的端口是8081,如果該端口已被占用請及時釋放,如果要用其他端口也可以,但是請修改開發環境中與maven私有倉庫相關的配置(配置信息包括maven的settings.xml以及maven工程的pom.xml,詳情請參照前兩篇文章);
啟動maven私有倉庫的容器
- 在docker所在電腦創建目錄/usr/local/work/dockermaven;
- 執行命令chmod 777 /usr/local/work/dockermaven,給此目錄賦權限;
- 執行以下命令,會自動從hub.docker.com下載最新的nexus鏡像,然后啟動一個名為nexus的容器,當前電腦的8081端口被映射到容器的8081端口:
docker run -idt -p 8081:8081 --name nexus -v /usr/local/work/dockermaven:/sonatype-work sonatype/nexus
- 執行命令docker logs -f nexus查看容器日志滾動信息,顯示如下信息時nexus啟動成功:
2018-01-20 03:37:42,187+0000 INFO [jetty-main-1] org.sonatype.nexus.webresources.internal.WebResourceServiceImpl - Discovered 1971 resources 2018-01-20 03:37:42,189+0000 INFO [jetty-main-1] org.sonatype.nexus.webresources.internal.WebResourceServlet - Max-age: 30 days (2592000 seconds) 2018-01-20 03:37:42,304+0000 INFO [jetty-main-1] org.sonatype.nexus.bootstrap.jetty.InstrumentedSelectChannelConnector - Metrics enabled 2018-01-20 03:37:42,348+0000 INFO [jetty-main-1] org.eclipse.jetty.server.AbstractConnector - Started InstrumentedSelectChannelConnector@0.0.0.0:8081 2018-01-20 03:37:42,352+0000 INFO [jetty-main-1] org.sonatype.nexus.bootstrap.jetty.JettyServer - Running 2018-01-20 03:37:42,352+0000 INFO [main] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - Started
查看當前電腦的/usr/local/work/dockermaven目錄,可以看到nexus容器中應用的相關文件已經在此處創建,如下圖:
- 我的電腦IP是192.168.119.155,因此在瀏覽器輸入地址訪問nexus:http://192.168.119.155:8081/nexus
- 對maven私有倉庫的使用者來說,完全感受不到實際安裝和在docker安裝私有倉庫的區別,您可以像前兩章的實戰那樣,體驗此倉庫的jar緩存和保存二方庫的服務;
- 我這里像上一章那樣發布了一個二方庫到nexus,deploy成功后,可以在nexus上看到新的二方庫,如下圖所示,(deploy之前記得在nexus上設置允許上傳,並且設置deployment賬號的密碼,詳見上一章):
至此,實戰maven私有倉庫三部曲系列就全部結束了,希望其中的實戰和demo能夠助您一臂之力;