maven项目离线编译和构建的三种方式总结

Jenkins执行Maven项目的离线构建,引用本地lib资源方案记录 Maven项目引用本地lib资源进行离线部署 阅读详情

问题场景

项目开发测试是在互联网的,使用maven管理依赖库,自动从互联网上下载,如何将项目和依赖库移到内网环境,使用maven离线编译。

方法一:项目pom文件配置(局部范围)

  • 优点:依赖库和配置随项目工程目录拷贝,方便,任何一台机器只要装了maven和jdk既可以,执行maven package编译

  • 缺点:项目工程中需要配置以及拷贝依赖库,每个项目都得重新来

  • 适用:适用于离线环境下,无法联网或建立统一中央仓库的情况,特别是生产环境。

    具体配置:

    1.Win10拷贝用户目录下的C:\Users<username>.m2\整个目录(包括子目录repository)到项目工程目录<myproject_dir>
    2.修改项目工程目录下的maven配置文件pom.xml

<project.....

	<repositories>
    <repository>
      <id>myproject</id>
      <name>myproject Repository</name>
      <url>file://${project.basedir}/.m2/repository</url>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>myproject</id>
      <name>myproject Repository</name>
      <url>file://${project.basedir}/.m2/repository</url>
    </pluginRepository>
  </pluginRepositories>
  
........
  1. 在<myproject_dir>目录下,执行mvn package 即可离线编译

方法二:修改maven全局配置文件settings.xml

适用于建立统一的本地仓库,另外影响当前主机所有mvn项目的构建过程,不仅仅是当前的项目,不用更改项目本身的pom.xml文件;

1. Win10 拷贝用户目录下的C:\Users\<username>\.m2\整个目录(包括子目录repository)到任意目录下</myproject/.m2/repository>
2. 安装mvn,修改mvn目录conf/settings.xml文件,指定本地仓库路径
  <localRepository>/myproject/.m2/repository</localRepository>
  <offline>true</offline>
3.直接在项目目录下执行mvn package命令

最佳方法三:maven安装包和项目工程集成一起拷贝(集成以上两种方式)

项目方便迁移内网,离线编译,可以将maven软件本身安装目录和项目目录一起拷贝,将本地.m2仓库拷贝到maven目录下,同时修改其settings.xml文件即可,做到无缝迁移。

优点:既不用在离线环境下安装maven软件,也不用下载依赖库,同时不用修改项目本身的pom文件,项目可以直接从互联网环境拷贝到离线的内网环境。

idea如何离线构建Maven项目 需求背景 某银行项目采... 阅读详情

相关推荐

将本地离线Jar包上传到Maven远程私库上,供项目编译使用

因项目对接需求,需对接第三方Jar(海康人脸识别服务网关API),在项目集成时,处于本地编译、远程持续构建的需要将离线Jar推送到远程Maven仓库。

Jarlen的专栏 811

maven离线模式及设置

Q:什么时候需要maven离线模式? A:没有网络,只有本地库,又是用maven来管理项目,在编译或者下载第三方Jar的时候,老是去中央仓库上自动下载,导致出问题

sxp知识共享 8099

Gradel离线、在线编译Java项目

离线编译Java项目,需要jdk、gradle。下载所需版本的gradle和jdk,gradle不区分windows环境和linux环境,但是jdk区分。以下基于windows环境,Linux环境把gradlew.bat换成 gradlew即可。1.进入项目目录2.在当前目录下,打开终端,执行命令。命令中指定gradle路径和jdk路径。本例中使用的JDK版本为windows下的1.8.0_xxx版本,可根据不同环境自行选择。

theflowerofac^MQLYES的专栏 765

maven离线编译问题

今天拿到开发同事给的maven项目,fortify需要编译,但是发现没有网,于是让开发的同事跑了一个maven仓库,结果发现离线编译还是去互联网下载依赖,很纳闷,最后发现问题在这里: 表示此jar包是从LaniCorp这个私服上下载的,而此时我是连不上私服的(这些依赖是别人拷贝给我的)。所以会使用我配置的aliyun的maven镜像,遇到下载不了的jar包就报错了。 解决办法就是把这个...

liweibin812的博客 2748

fortify如何正确编译maven项目总结

安装fortify-maven插件 首先在fortify SCA的安装目录下找到maven插件,D:\Fortify_SCA_and_Apps_16.20\plugins\maven\maven-plugin-bin 然后执行install.bat脚本将fortify的maven插件安装到本地仓库即可。 注:install脚本中的三条命令就是将fortify编译打包安装的一个过程, 其...

liweibin812的博客 1137

怎样进行 maven 离线编译 install

怎样进行 maven 离线编译 installmvn clean install --offline或者在settings中配置:<offline>true< /offline>开启离线模式.

AI天才研究院 9509

如何提高maven的编译速度

作为java开发都有这样的体会:打包一个项目需要等很久。今天我们就研究一下如何提升mvn的编译速度。 1)Parallel Builds in Maven: 默认Maven不使用硬件的全部功能,它顺序地构建所有模块。通常,可以命令Maven分析您的项目(包括依赖关系图),并在可能的情况下并行构建项目。可以指定用于构建项目的确切线程数,也可以使用参数的可移植版本,并根据计算机上可用的CPU来指定线程数。 mvn -T 4 install -- will use 4 threads mvn -T 1C

赶路人儿 1万+

【DevOps】离线将 JDK 17、Maven 3.8.6打包到 Docker 镜像中,并在 Kubernetes 中编译 Java 项目

有离线环境下的jdk17和maven3.8.6的linux压缩安装包,如何把jdk17和maven3.8.6环境和setting打包到镜像里面,需要编译的时候就在K8S里面进入到这个镜像里面去编译打jar包。通过以上步骤,您可以验证 Docker 镜像中包含的 JDK 和 Maven 的版本是否正确,并测试该环境下的 Java 项目编译能力。目录下生成的 JAR 文件表明 JDK 和 Maven 均已正确安装,并且可以成功编译项目。在容器中,可以创建一个简单的 Java 项目进行编译测试。

weixin_46453070的博客 914

基于JDK1.8和Maven的GeoTools 28.X源码自主构建实践

本文以GeoTools开源项目为例,重点来讲解如何在本地离线来编译GeoTools28.X,博文首先介绍GeoTools中版本的知识,介绍GeoTools和GeoServer以及JDK的关系;然后介绍如何在JDK1.8当中来进行GeoTools的源代码来进行编译。通过文本,您可以熟悉GeoTools的版本与Jdk的依赖关系,同时掌握如何使用Maven来进行GeoTools的源码构建。

夜郎King的博客 9649

Maven离线插件完整解决方案包

Maven 是 Java 开发生态中不可或缺的自动化构建工具,它通过标准化项目结构、自动化依赖管理和灵活的插件机制,极大地提升了项目构建与维护的效率。与传统的 Ant 构建脚本相比,Maven 提供了清晰的生命周期模型(如cleancompilepackageinstalldeploy),并支持依赖传递、版本控制和多模块管理。在企业级项目中,Maven 不仅简化了构建流程,还支持持续集成与持续交付(CI/CD)的自动化部署。通过pom.xml。

weixin_42588555的博客 899

Eclipse Maven离线插件实战指南

Maven是一种广泛使用的项目管理和构建自动化工具,它基于项目对象模型(POM)的概念,提供了一套标准的项目结构和生命周期管理机制。Maven利用其丰富的插件架构,简化了Java项目的构建过程,极大地提高了开发效率和协作的便捷性。尤其是在需要离线工作的情况下,Maven离线插件能够帮助开发者继续进行项目的依赖管理和自动化构建,从而不因网络问题而中断开发流程。Apache Maven是一个项目管理工具,它为Java项目提供了一种标准的项目构建和依赖管理的模型。

weixin_29069575的博客 1102

maven离线模式设置总结

设置maven离线模式 找到maven\conf\settings.xml文件,把settings.xml文件里的<offline>false</offline>设置为<offline>true</offline> 更改maven的setting.xml的镜像为本地仓库 <mirrors> <mirror&g...

JinKin_OldWang的博客 1万+

maven配置手动下载jar包,用于离线导入

配置maven,在线下载jar包,可用于打包到内网,用于离线导入依赖

IDEA离线使用maven仓库

转载:https://blog.youkuaiyun.com/xqnode/article/details/88091986 我们开发涉密项目的时,需要在内网的环境下调试程序,这时候一个比较头疼的问题是无法下载相关的maven依赖,导致项目无法编译启动。怎么解决这个问题呢? 第一步,将相关的maven依赖在外网的环境中下载好,然后将整个repository打包后拷贝到内网的机器上并解压: 第二步,将...

斯客风的博客 4494

电驱系统功率级“多合一”解决方案

如何提升电驱动系统的产品性能、减小能耗和进一步轻量化,以加强整车市场竞争力,是摆在国内外新能源车企面前的共同课题。为此,具有多年动力总成电子系统开发经验的美国著名半导体及电子解决方案专家——德州仪器(Texas Instrument)提出了多种功率级别“多合一”整合方案和设计思路,助力新能源车企提升技术优势。

yessunday的专栏 1370

保姆级教程:在华为MateBook E Go上安装安卓子系统(含Hyper-V配置和地区切换避坑指南)

本文提供在华为MateBook E Go(ARM架构)上安装Windows 11安卓子系统(WSA)的详细指南。重点阐述了ARM平台无需指令转译的流畅原生体验优势,并逐步讲解启用Hyper-V虚拟化、切换系统区域以安装Amazon Appstore、配置开发人员模式及使用ADB安装第三方应用(如华为应用市场)的全过程,助您解锁高效的原生安卓应用生态。

kafka6courier的博客 530

【游戏开发进阶】教你自制离线Maven仓库,实现Unity离线环境使用Gradle打包(Unity | Android | 谷歌 | Gradle)

教你自制离线Maven仓库,实现Unity离线环境使用Gradle打包

linxinfa的专栏 7342

拆解大疆Osmo Pocket:聊聊微型云台里那几根比头发丝还细的线,以及它为啥一开机就‘摇头晃脑’

本文深入拆解大疆Osmo Pocket微型云台的精密硬件结构,揭秘其开机自检时‘摇头晃脑’的奥秘。通过分析无刷电机、霍尔传感器和46AWG同轴线等核心组件,展现了大疆在微型云台设计中的工程智慧与创新技术,特别是FOC控制和陀螺仪的应用,实现了0.1°级的姿态控制精度。

weixin_27869497的博客 667

Maven轻松构建你的Java项目

Maven快速入门

少年你真的要止步于此嘛。 1220

华为IPD实战:从概念到发布的完整流程拆解(附各阶段关键文档模板)

本文深入拆解华为IPD(集成产品开发)从概念到发布的完整实战流程,涵盖概念、计划、开发验证及发布生命周期四大阶段。详细解析了各阶段的核心活动、关键产出与决策评审点,并提供了如《初始业务计划书》等关键文档模板框架,旨在帮助企业将IPD理论转化为可执行的操作指南,提升研发效率与产品成功率。

weixin_29212429的博客 525

使用 Cadence ams 仿真器 对 混合信号电路 进行仿真

文章目录Cadence 基于ams仿真器的混合信号电路仿真建立数字(Digital)模块建立 Analog - Digital 混合仿真原理图建立 Analog - Digital 混合仿真config文件配置混合信号电路仿真环境针对混合信号电路demo进行仿真 Cadence 基于ams仿真器的混合信号电路仿真 你好,这里是一篇关于使用 Cadence 软件通过 ams 仿真器对混合信号电路(D...

mymatin1004的博客 2万+

一点一点学maven(05)——maven与eclipse集成,eclipse创建maven项目并编译运行

一、maven与eclipse集成1、确保本地已经安装maven,并完成maven环境变量的配置;maven 的仓库默认放在本地用户的临时文件夹下面的 .m2 文件夹下repository 下,打开maven下的conf下settings.xml,修改本地仓库默认地址: 2、eclipse 安装插件的方式最常见的有两种:离线link方式和eclipse在线安装。2.1)、离线link安装: 1.

javaloveiphone的专栏 4613

程序化广告行业(2/89):从程序化广告深挖数据处理技巧

大家好!我一直希望能和大家在技术学习的道路上携手共进,这也是我写这一系列博客的初衷。上次我们一起学习了Python基础的数据处理知识,这次咱们借助一本程序化广告手册,深入挖掘数据处理的更多技巧。这本手册涵盖了程序化广告从概念到技术实现的诸多方面,而其中处处都涉及到数据处理,相信会给我们带来不少收获

yyy173611的博客 4571

Maven构建优化技巧:10个提升构建速度的方法

Apache Maven作为Java项目的主流构建工具,其构建效率直接影响开发流程。本文整理了10个经过实践验证的Maven构建优化技巧,帮助开发者显著缩短构建时间,提升开发效率。无论是大型企业级项目还是小型应用,这些方法都能有效优化Maven的构建性能。 ## 1. 启用并行构建模式 ⚡️ Maven 3.0+支持多模块并行构建,通过充分利用CPU多核资源加速构建过程。在命令中添加`-T`参

gitblog_00238的博客 1098

caverdock如何使用,一文给你多方案教学!

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 1384

ISO13849功能安全从入门到精通(3):安全功能及其对降低风险的贡献4

例如,如果机器必须在有限速度下运行时进行设置,那么在低加速度值下进行设置时,参数P1将是正确的选择:随着危险缓慢出现并给予足够的运动自由,操作员将能够移出危险区域。例如,在无故障的条件下,在操作者的手的方向移动的滚子不能陷住它。在所有其他情况下,F1是正确的选择,前提是危险暴露的持续时间不超过机器总操作时间的1/20。需求来源于必要的风险降低。由于这些考虑而降低的PLr在任何情况下都不得低于通过比较方式考虑的机器的PLr,因为并不能从事故发生率低和严重程度低得出实施的安全功能提供的安全水平高于要求。

wdconan001的博客 832
上一篇: windows hyper-v ubuntu 19.04 docker build free(): invalid pointer 错误(2019-06-05)
下一篇: 小知识:docker run、exec和attach使用和区别
壹零Boy
博客等级 码龄14年 31粉丝 43原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值