乐趣区

关于java:如何通过docker编译java项目

背景

在之前的文章中介绍如何用 docker 编译前端我的项目,docker 编译我的项目的有点后面曾经说的很分明了这边就不在赘述,后端开发语言较多,咱们就以 java 为例,介绍如何用 maven 镜像进行编译

实现

  • 咱们筹备一个 java 我的项目,应用 maven 进行包治理
  • 执行以下命令进行编译
docker run -it --rm --name my-maven-project -v "/you/path/app":/usr/app -w /usr/app maven:3.8.1-openjdk-8-slim mvn clean package

将我的项目挂载到容器文件系统门路 /usr/app 下,- w 将工作目录指定到 /usr/app 下,–rm 能够保障编译完删除镜像,防止占用空间。

首次编译因为本地没有下载依赖所以会先下载依赖包,再执行编译打包命令,这个后果不是咱们想要的,如果一个工程依赖的包很多,每次都要从新下载效率会非常低,其实只有把 maven 的 repository 目录映射进去就行

docker run -it --rm --name my-maven-project  -v /u01/workspace/m2:/var/maven/.m2 -v "/you/path/app":/usr/app -w /usr/app -e MAVEN_CONFIG=/var/maven/.m2  maven:3.8.1-openjdk-8-slim mvn -Duser.home=/var/maven clean package

必须指定 MAVEN_CONFIG-Duser.home

参考

如何通过 docker 编译前端我的项目

退出移动版