问题场景
项目开发测试是在互联网的,使用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>
........
- 在<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文件,项目可以直接从互联网环境拷贝到离线的内网环境。

本文总结了在离线环境下使用Maven进行项目编译和构建的三种方法:1)通过在项目pom文件配置实现局部范围的离线编译;2)修改maven全局配置文件settings.xml;3)结合maven安装包和项目工程一起拷贝,实现无缝迁移。每种方法的优缺点及适用场景也进行了详细说明。
2万+

被折叠的 条评论
为什么被折叠?



