如何通过docker编译java项目

Posted wls1036

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过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编译前端项目

以上是关于如何通过docker编译java项目的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Docker 进行Java 开发

Docker运行Java项目挂载使用外部配置文件

Docker运行Java项目挂载使用外部配置文件

Docker运行Java项目挂载使用外部配置文件

shopify 1调研出海项目,发现shopify没有java的相关SDK接口,但是找到一个最新2022年6月的Java项目分享了相关代码,使用docker进行环境搭建编译,并成功启动

创建片段而不从 java 代码实例化它