前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >离线环境下 Maven 编译打包

离线环境下 Maven 编译打包

作者头像
AlphaHinex
发布2024-04-09 19:40:35
1890
发布2024-04-09 19:40:35
举报
文章被收录于专栏:周拱壹卒周拱壹卒

Part1背景

某些离线场景下我们可能无法连接 Maven 中央库或其他内网私服,又想通过 Maven 对源码进行编译打包。

本文给出了在离线环境下使用 Maven 编译打包的方案。

Part2前置条件

假设目标环境已经安装好了 JDK 和 Maven,并且将要编译的源码工程 demo-project 放置在了 /maven-offline/build 路径下。

Part3解决方案

1准备编译所需依赖

先在联网环境成功执行一次编译,保证使用的 Maven 本地缓存仓库(默认路径 ~/.m2/repository)中包含了编译所需的依赖。

将本地缓存仓库目录 repository 发送至离线环境 /maven-offline/build 路径下:

代码语言:javascript
复制
├── demo-project
└── repository

清理所有 _remote.repositories 文件

repository 目录中可能包含了很多 _remote.repositories 文件,需先将这些文件进行清理,否则还是会去中央库查找依赖。

  • Windows:
代码语言:javascript
复制
for /r %i in (_remote.repositories) do del %i
  • Linux:
代码语言:javascript
复制
find ./repository -name "_remote.repositories" -exec rm {} \;

2Maven 离线编译配置

/maven-offline/build/ 下新建 settings.xml,内容如下:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    
    <localRepository>/maven-offline/build/repository</localRepository>
    <offline>true</offline>
    
</settings>

配置文件中只需设定两个 Simple Values[1]

  1. localRepository:指定清理过 _remote.repositories 文件的路径
  2. offline:使用离线模式

3指定配置文件执行编译

以在 /maven-offline/build/ 路径下执行命令为例:

代码语言:javascript
复制
├── demo-project
├── repository
└── settings.xml
代码语言:javascript
复制
mvn -s settings.xml -f demo-project/pom.xml clean package

Part4参考资料

[1]

Simple Values: https://maven.apache.org/settings.html#simple-values

[2]

maven离线环境配置(纯内网): https://blog.csdn.net/Remember_Z/article/details/119523295

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-24,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 周拱壹卒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Part1背景
  • Part2前置条件
  • Part3解决方案
    • 1准备编译所需依赖
      • 清理所有 _remote.repositories 文件
    • 2Maven 离线编译配置
      • 3指定配置文件执行编译
      • Part4参考资料
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
      http://www.vxiaotou.com