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
- Easypack之Alpine容器系列:Maven
- Easypack之Alpine容器系列:Jenkins
- Easypack之Alpine容器系列:Redmine
- Easypack之Alpine容器系列:Sonarqube
- Easypack之Alpine容器系列:Jenkins之pipeline集成
- Easypack容器系列之:Nexus 3:Maven仓库管理
- Easypack之自动安装系列:Maven
- Easypack容器系列之:Nexus 3:Docker私库
- Easypack容器系列之Nexus 3:Docker私有仓库
- Easypack容器系列之:Nexus 3:NPM私库
- Docker系列之(三):Docker微容器Alpine Linux
- Docker系列之(三):Docker微容器Alpine Linux
- Docker系列之(三):Docker微容器Alpine Linux
- 一句话系列之maven
- STL系列之vector(容器)
- Spring系列之核心容器
- Easypack:安全防护工具之:ClamAV之一键安装
- Maven系列之02-创建Maven项目
- 106. Construct Binary Tree from Inorder and Postorder Traversal
- oracle 数据库入门pl/sql 基本操作
- Ubuntu
- 几个 Context 上下文的区别
- asd f sdfsd f afsda fsdasC ASDF
- Easypack之Alpine容器系列:Maven
- android应用开发-从设计到实现 2-3 颜色的运用(一)
- Ubuntu 强行修改用户名导致密码错误无法进入系统的解决办法
- Oracle MySql以及Hibernate实现分页
- Oracle MySql以及Hibernate实现分页 2
- Java学习第二天
- 一阶逻辑是什么?
- Elasticsearch 基本概念
- Codeforces Round #401 (Div. 2) 题解