- 创建一个新项目
$ oc new-project maven-mirror
- 根据sonatype/nexus镜像创建应用,然后查看“nexus-1-xxxxx”的状态,直到是Running的状态。
$ oc new-app sonatype/nexus
$ oc get pod -w
NAME READY STATUS RESTARTS AGE
nexus-1-deploy 0/1 Completed 0 21m
nexus-1-q5x2m 1/1 Running 0 21m
- 根据Service生成Route,并查看Route访问地址。
$ oc expose svc/nexus
$ oc get route nexus -o template --template '{{.spec.host}}'
- 在浏览器中打开"http://<ROUTE>/nexus"地址访问nexus控制台。
- 点击控制台左侧的Repositories,再进入Public Repositories,然后在Browse Index中确认当前没有任何Java库。
- 创建一个基于Java应用的Build,然后持续查看jee-ex-1的状态直到为Complete,确认build花的时间。
$ oc new-build openshift/wildfly-100-centos7:latest~https://github.com/openshift/jee-ex.git
$ oc get build -w
NAME TYPE FROM STATUS STARTED DURATION
jee-ex-1 Source Git New
jee-ex-1 Source Git Pending
jee-ex-1 Source Git Running 4 seconds ago
jee-ex-1 Source Git@5e2ca5e Running 12 seconds ago
jee-ex-1 Source Git@5e2ca5e Running 2 minutes ago
jee-ex-1 Source Git@5e2ca5e Running 2 minutes ago
jee-ex-1 Source Git@5e2ca5e Complete 2 minutes ago 2m54s
- 在Nexus中的Public Repositoies中空的。
- 执行以下命令再次build一次,并确认build所需要的时间(和第一次很接近)。
$ oc start-build jee-ex
$ oc get build -w
NAME TYPE FROM STATUS STARTED DURATION
jee-ex-2 Source Git New
jee-ex-2 Source Git Pending
jee-ex-2 Source Git Running 4 seconds ago
jee-ex-2 Source Git@5e2ca5e Running 12 seconds ago
jee-ex-2 Source Git@5e2ca5e Running 2 minutes ago
jee-ex-2 Source Git@5e2ca5e Running 2 minutes ago
jee-ex-2 Source Git@5e2ca5e Complete 2 minutes ago 2m53s
- 查看第二次build的日志,确认依赖文件都是从外部网站https://repo1.maven.org/maven2下载的。
$ oc logs build/jee-ex-2
10. 查看nexus服务。
$ oc get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nexus ClusterIP 172.30.5.80 <none> 8081/TCP 66m
- 再次执行以下命令,启动一次新的Build并指定对应环境参数(设置了“MAVEN_MIRROR_URL”参数,地址中“nexus:8081”为nexus服务名称和端口),然后查看Build完成所需时间。
$ oc start-build jee-ex --env=MAVEN_MIRROR_URL=http://nexus:8081/nexus/content/groups/public
$ oc get build -w
NAME TYPE FROM STATUS STARTED DURATION
jee-ex-3 Source Git New
jee-ex-3 Source Git Pending
jee-ex-3 Source Git Running 4 seconds ago
jee-ex-3 Source Git@5e2ca5e Running 25 seconds ago
jee-ex-3 Source Git@5e2ca5e Running 2 minutes ago
jee-ex-3 Source Git@5e2ca5e Complete 2 minutes ago 2m48s
- 查看最后一次Build的日志,确认Build是从http://nexus:8081下载的依赖文件。不过由于在Maven中还没有缓存,所以这次Maven还会先从外部下载所需文件然后再放进缓存中,因此Build所需时间和以前基本相同。
$ oc logs build/jee-ex-3
13. 查看Nexus控制台,确认Public Repositories中已经有Maven的缓存文件了。
13. 再次运行Build,确认需要的Build时间会变短,这是由于Build所需的文件已经从本地Maven缓存中下载的了。
$ oc start-build jee-ex --env=MAVEN_MIRROR_URL=http://nexus:8081/nexus/content/groups/public
$ oc get build -w
jee-ex-4 Source Git Running 6 seconds ago
jee-ex-4 Source Git@5e2ca5e Running 11 seconds ago
jee-ex-4 Source Git@5e2ca5e Running About a minute ago
jee-ex-4 Source Git@5e2ca5e Running About a minute ago
jee-ex-4 Source Git@5e2ca5e Complete About a minute ago 1m48s