【经验】maven转到离线环境

----本文的适用场景为,在有网络环境下编写的maven工程,移植到无外网及无maven仓库环境下(下文简称内网环境),致力于解决初学者或者不关注开发环境本身的开发者问题。

    之前有发现同事直接把外网整个maven仓库覆盖到内网环境使用,此方法没啥问题,但是对于仓库的简洁和使用不方便,比如我只想在内网引用spring-boot-starter-jdbc,全量覆盖就太奢侈了

【开发工具】idea、eclipse

【中间件】maven

【框架】不限制

直接开始:

1. 将外网下载完成的本地maven库打包,扔到内网环境。本地maven仓库位置查看方式如下:

【eclipse】windows-Preferences-Maven-User Settings-Local Repository**

【idea】File-Settings-Build,Execution,Deployment-Build Tools-Maven

如果上述没有进行配置,则使用的maven默认的路径,

windows下是在C:\Users\Administrator\.m2\repository

2.外网maven包放到内网环境,修改内网maven配置

【存放全量maven】把外网的maven打包放到内网`D:\maven_repo\all`目录下

【修改maven配置】找到内网环境的maven中间件,修改setting文件,如D:\soft2\apache-maven-3.6.3\conf\settings.xml,

配置本地maven仓库路径:

D:\soft2\apache-maven-3.6.3\conf\settings.xml
<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
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository  -->
  <localRepository>D:\maven_repo\repository</localRepository>
...

配置仓库源地址,把本地`D:\maven_repo\all`作为仓库源:

  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |-->
    <mirror>
      <id>central</id>
      <name>central</name>
      <url>file://D:\maven_repo\all</url>
	  <mirrorOf>*</mirrorOf>
    </mirror>
     
  </mirrors>

【刷新开发工具】eclipse中可右键项目-Maven-Update Project,idea点击右侧的Maven,将拓展框左上角的三个按钮都点一下

【开发工具爆红】有时候刷新了开发工具,还是没有成功加载包,这时候就把项目移除,重新导入项目吧...

【拓展】将`D:\maven_repo\all`作为了全量的仓库源,后续可从外网无脑扔库到此路径下,项目中需要引用哪个只需要在pom中引用就好了,maven会自动将关联依赖加载到工程仓库中

第一篇分享文,希望大家多多指正

 

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
离线加载本地仓库是指在没有网络连接的情况下,通过使用Maven构建工具加载本地仓库中的依赖库和插件。以下是实现这个目标的步骤: 1. 在具有网络连接的环境下,在目标机器上使用Maven将所有需要的依赖库和插件都下载到本地仓库。本地仓库默认位置是在用户主目录下的.m2文件夹中。 2. 在目标机器上,打开Maven项目的pom.xml文件,添加以下插件配置: ```xml <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin> </plugins> ``` 3. 在命令行中进入到项目根目录,执行以下命令: ``` mvn clean install -o ``` 其中,-o参数表示离线模式,会阻止Maven尝试从远程仓库获取依赖。 4. 执行完命令后,Maven会将所有依赖库和插件复制到项目的目标目录中的lib文件夹里。 现在,你的Maven项目就可以在没有网络连接的环境下加载本地仓库了。你可以将包含项目及其依赖的整个目录复制到目标机器上,并在目标机器上运行项目。 需要注意的是,在没有网络连接的情况下,你无法从远程仓库获取新的依赖库和插件。所以,在需要更新依赖库和插件时,你仍然需要连接到互联网并使用Maven进行更新。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值