首页 > 编程语言 >授之以渔不是授之以鱼-docker maven 构建java工程

授之以渔不是授之以鱼-docker maven 构建java工程

时间:2024-03-15 10:55:17浏览次数:24  
标签:java maven pwd 构建 m2 HOME id 授之以

原始的maven 构建语句

mvn clean install -Dmaven.test.skip=true

现在需要在一台新的安装有docker的机子上构建,要求用 jdk17 和 maven 3.9,这台机子较旧,只有jdk8 和 jdk11,但是有安装docker,在不动构建机器现有软件的情况下构建。

docker run \
--rm \ -v $(pwd):$(pwd) \ -v ${HOME}/.m2:${HOME}/.m2 \ -w $(pwd) -u $(id -u):$(id -g) \ maven:3.9.6-eclipse-temurin-17 \ mvn -Duser.home=${HOME} clean install -Dmaven.test.skip=true

 

下面对新的构建语句简单解析一下

-v $(pwd):$(pwd) #这个比较简单,就是将当前目录挂载到容器中相同位置,也就是构建主目录
-v ${HOME}/.m2:${HOME}/.m2 # 将当前用户主目录下的 .m2 挂载到容器中相同位置,也就是maven配置目录
 -w $(pwd) # 指定容器起动时工作目录为构建主目录
maven:3.9.6-eclipse-temurin-17 # 这个镜像从 Docker 找来的,根据自己需要选具体的镜像
-Duser.home=${HOME} # 这个是因为除了root用户id之外,其它用户的id通常与容器中的用户id不对应,且通常容器中不存在这个用户,这里显式给maven指定用户的主目录,以达到共享maven本地缓存和共享主机上maven配置文件的目的


 
 

标签:java,maven,pwd,构建,m2,HOME,id,授之以
From: https://www.cnblogs.com/lyqf365/p/18074944

相关文章

  • 常见问题解决 --- idea与maven使用常识
    1.拿到项目代码后先要知道使用了哪些技术和工具。比如使用的是idea、eclipse还是maven创建的项目,使用什么编程语言,使用什么项目目录结构等等2.如何用maven创建的项目必然有pom.xml,每次修改pom文件后必须重新加载。3.如果修改代码后还是报错,尝试使用clean清除编译缓存再同步maven......
  • Java中实现单例(Singleton)模式的八种方式
    单例模式定义单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。基本的实现思路单例模式要求类能够有返回对象一个引用(永远是同一个)和一个获得该实......
  • Java序列化和反序列化机制
    Java的序列化和反序列化机制问题导入:在阅读ArrayList源码的时候,注意到,其内部的成员变量动态数组elementData被Java中的关键字transient修饰transient关键字意味着Java在序列化时会跳过该字段(不序列化该字段)而Java在默认情况下会序列化类(实现了Java.io.Serializable接口......
  • 猫头虎分享已解决Bug | 成功解决java.lang.OutOfMemoryError: Java heap space错误
    博主猫头虎的技术世界......
  • [转][Java] Date 的替代品 Instant
    来自:https://mp.weixin.qq.com/s/SotzqrKAfrND88n12QFCEA怎么改?只能说这种基础的类改起来牵一发动全身,需要从DO实体类看起,然后就是各种Converter,最后是DTO。由于我们还是微服务架构,业务服务依赖于基础服务的API,所以必须要一起改否则就会报错。这里就不细说修改流程了,主要说一下......
  • JavaScript字符串和时间处理随笔
    2024-3-15记事1//待处理数组2letarr=[];3//筛选数组某个字段(某一列)4letjieshus=arr.railways.map(item=>item.jieshu);5//获取当前时间时间戳6letnow=Date.now();7//获取当前时间并转化成指定格式的日期字符串8letdate=newDate().toLo......
  • Javaweb项目使用本地servlet启动,可以弹出主页,跳转到controller报404解决方案
    首先检查项目的资源路径,以及tomcat配置,有没有部署,上下文配置好如果问题依然出现,那么可以考虑tomcat版本与依赖不匹配,我用的是tomcat10,使用使用这个依赖,就解决了这个问题,jakarta.servletjakarta.servlet-api5.0.0provided,相应的匹配版本可以查询到。......
  • JAVA中文乱码浅析及解决方案
            在Java编程中,中文乱码问题是程序员经常面临的一个挑战。中文乱码指的是在处理中文字符时,由于字符编码不统一或者编码转换错误导致的字符显示不正常、无法正确解析的问题。本文将从中文乱码的原因分析开始,然后介绍一些常见的解决方案,帮助程序员有效地解决这一问......
  • Java基于 Springboot+Vue 的招生管理系统,前后端分离
    博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w+、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌......
  • Maven中optional标签详解(转)
    原文:https://blog.csdn.net/weixin_43888891/article/details/130510971作者:怪咖@来源:CSDN 一、前言<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.18</version><optio......