Easypack之Alpine容器系列:Maven

来源:互联网 发布:编辑小说的软件 编辑:程序博客网 时间:2024/05/21 19:54

这里写图片描述
发起源于Jakata Turbine的项目的Maven, 为项目的标准化构建和发布提供了非常重要的解决方案. Easypack项目中不止期待于软件安装的方便, 更是希望在此基础之上大家能够学习的同时进行新的尝试, 比如CAAS, 因此才引入了很多流行的开源软件的官方改制镜像. 比如Maven提供的功能如何以服务的形式对外提供, 在这篇文章中将会简单提及.

docker pull

[root@liumiaocn ~]# docker pull liumiaocn/mavenUsing default tag: latestlatest: Pulling from liumiaocn/mavenb7f33cc0b48e: Already exists43a564ae36a3: Already existsb294f0e7874b: Already exists731ea93f12f2: Pull complete769fb13c5eca: Pull completecc53179bb32f: Pull complete8f56d5f4a72f: Pull completeDigest: sha256:62beb4f57770dc5c4716901cf93c0d268f1bc7f83dab675fc9103ebc9e1507c0Status: Downloaded newer image for liumiaocn/maven:latest[root@liumiaocn ~]#

确认

[root@liumiaocn ~]# docker run -it --rm --name maven liumiaocn/maven mvn --versionApache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)Maven home: /usr/share/mavenJava version: 1.8.0_111-internal, vendor: Oracle CorporationJava home: /usr/lib/jvm/java-1.8-openjdk/jreDefault locale: en_US, platform encoding: UTF-8OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"[root@liumiaocn ~]#

使用场景

Maven提供的打包等服务,而我们只有代码,使用Maven所提供的服务进行打包,这是最简单的服务提供方式之一。我们使用在其他文章使用的spring cloud的Eureka提供的服务注册的模块进行编译,当然你也可以自己其他的pom项目。

事前确认

[root@liumiaocn discoveryservice]# lltotal 40-rw-r--r--. 1 root root 16573 Dec 28 07:30 discoveryservice.iml-rw-r--r--. 1 root root  7058 Dec 28 07:27 mvnw-rw-r--r--. 1 root root  5006 Dec 28 07:27 mvnw.cmd-rw-r--r--. 1 root root  2216 Dec 28 07:27 pom.xmldrwxr-xr-x. 4 root root    28 Dec 28 07:27 src[root@liumiaocn discoveryservice]#

执行

[root@liumiaocn discoveryservice]# docker run -it --rm --name maven -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven liumiaocn/maven mvn package[INFO] Scanning for projects...Downloading: https://repo.spring.io/snapshot/org/springframework/boot/spring-boot-starter-parent/1.4.3.RELEASE/spring-boot-starter-parent-1.4.3.RELEASE.pomDownloading: https://repo.spring.io/milestone/org/springframework/boot/spring-boot-starter-parent/1.4.3.RELEASE/spring-boot-starter-parent-1.4.3.RELEASE.pom......[INFO][INFO] ------------------------------------------------------------------------[INFO] Building discoveryservice 0.0.1-SNAPSHOT[INFO] ------------------------------------------------------------------------Downloading: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-maven-plugin/1.4.3.RELEASE/spring-boot-maven-plugin-1.4.3.RELEASE.pom......Downloaded: https://repo.maven.apache.org/maven2/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar (461 KB at 9.3 KB/sec)[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 42:10 min[INFO] Finished at: 2017-03-10T15:01:33+00:00[INFO] Final Memory: 34M/95M[INFO] ------------------------------------------------------------------------

中间确认

在mvn package的工程中,确认启动的container的结果

[root@liumiaocn discoveryservice]# docker exec -it maven /bin/sh/usr/src/mymaven # ls -ltotal 40-rw-r--r--    1 root     root         16573 Dec 28 12:30 discoveryservice.iml-rw-r--r--    1 root     root          7058 Dec 28 12:27 mvnw-rw-r--r--    1 root     root          5006 Dec 28 12:27 mvnw.cmd-rw-r--r--    1 root     root          2216 Dec 28 12:27 pom.xmldrwxr-xr-x    4 root     root            28 Dec 28 12:27 srcdrwxr-xr-x    3 root     root            20 Mar 10 14:44 target/usr/src/mymaven # pwd/usr/src/mymaven/usr/src/mymaven #

确认mvn管理的本地repository内容

/usr/src/mymaven # cd~ # pwd/root~ # cd .m2~/.m2 # lscopy_reference_file.log  repository               settings-docker.xml~/.m2 # cd repository~/.m2/repository # ls -larttotal 12drwxr-xr-x    3 root     root            79 Mar 10 14:19 ..drwxr-xr-x    3 root     root            16 Mar 10 14:23 chdrwxr-xr-x    3 root     root            21 Mar 10 14:26 staxdrwxr-xr-x    3 root     root            27 Mar 10 14:26 commons-jxpathdrwxr-xr-x    3 root     root            22 Mar 10 14:26 joda-timedrwxr-xr-x    3 root     root            18 Mar 10 14:27 antlrdrwxr-xr-x    3 root     root            34 Mar 10 14:27 commons-configurationdrwxr-xr-x    3 root     root            25 Mar 10 14:28 commons-langdrwxr-xr-x    3 root     root            20 Mar 10 14:28 xmlpulldrwxr-xr-x    3 root     root            21 Mar 10 14:28 xpp3drwxr-xr-x    3 root     root            26 Mar 10 14:29 commons-codecdrwxr-xr-x    3 root     root            24 Mar 10 14:30 aopalliancedrwxr-xr-x    6 root     root            55 Mar 10 14:30 javaxdrwxr-xr-x    4 root     root            34 Mar 10 14:31 iodrwxr-xr-x    3 root     root            28 Mar 10 14:33 commons-loggingdrwxr-xr-x    3 root     root            32 Mar 10 14:33 commons-collectionsdrwxr-xr-x    9 root     root          4096 Mar 10 14:33 comdrwxr-xr-x    4 root     root            31 Mar 10 14:33 netdrwxr-xr-x    3 root     root            18 Mar 10 14:33 junitdrwxr-xr-x   21 root     root          4096 Mar 10 14:34 orgdrwxr-xr-x    3 root     root            24 Mar 10 14:42 classworldsdrwxr-xr-x    3 root     root            24 Mar 10 14:42 commons-clidrwxr-xr-x   23 root     root          4096 Mar 10 14:42 .~/.m2/repository #

结果确认

可以看到,虽然没有安装Maven,输入了source,输出的是编译打包之后的结果。

[root@liumiaocn discoveryservice]# pwd/root/discoveryservice[root@liumiaocn discoveryservice]# lltotal 44-rw-r--r--. 1 root root 16573 Dec 28 07:30 discoveryservice.iml-rw-r--r--. 1 root root  7058 Dec 28 07:27 mvnw-rw-r--r--. 1 root root  5006 Dec 28 07:27 mvnw.cmd-rw-r--r--. 1 root root  2216 Dec 28 07:27 pom.xmldrwxr-xr-x. 4 root root    28 Dec 28 07:27 srcdrwxr-xr-x. 9 root root  4096 Mar 10 10:01 target[root@liumiaocn discoveryservice]# ll targettotal 39044drwxr-xr-x. 3 root root       45 Mar 10 09:49 classes-rw-r--r--. 1 root root 39971767 Mar 10 10:01 discoveryservice-0.0.1-SNAPSHOT.jar-rw-r--r--. 1 root root     3685 Mar 10 09:58 discoveryservice-0.0.1-SNAPSHOT.jar.originaldrwxr-xr-x. 3 root root       24 Mar 10 09:49 generated-sourcesdrwxr-xr-x. 3 root root       29 Mar 10 09:49 generated-test-sourcesdrwxr-xr-x. 2 root root       27 Mar 10 09:58 maven-archiverdrwxr-xr-x. 3 root root       34 Mar 10 09:49 maven-statusdrwxr-xr-x. 2 root root     4096 Mar 10 09:53 surefire-reportsdrwxr-xr-x. 3 root root       16 Mar 10 09:49 test-classes[root@liumiaocn discoveryservice]#

总结

使用Maven的容器提供打包服务,但是repository还是与容器进行关联,结合nexus的服务和本地存储管理会有更好的效果。

1 0