本文介绍如何在离线状况下编译maven项目。

假设项目分布为:

D->Code ->project ->pom.xml:项目位置

|->Maven ->conf ->settings.xml:maven配置文件的位置

|->repository:存放依赖的位置

命令行编译

先配置maven的配置文件:

<!--settings.xml-->

<?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>D:\repository</localRepository>
  
  <offline>true</offline>

</settings>


localRepository设置本地仓库位置,offline设置离线模式。

然后在命令行中打开项目的位置,即pom.xml文件所在的位置下,使用命令编译项目:

$ mvn clean package -s "D:/Maven/conf/settings.xml"

-s设置maven配置文件的位置。

Eclipse编译

同样是先配置maven的配置文件,同上。

打开workspace,选择项目的上一级目录。

进入eclipse后,先进行eclipse的配置。

配置eclipse

打开设置,找到Maven。只勾选最前面的两项(Offline和Do not automatically update dependencies from remote repositories),其他的取消勾选。

image-20210523143822060

接着设置maven的位置,在Maven->Installations下,增加并勾选本地的maven,不用eclipse内置的。

image-20210523145458468

最后设置settings.xml文件以及本地仓库位置。在位置Maven->User Settings下,Global Settings和User Settings都选择D:/Maven/conf/settings.xml,Local Repository选择D:/Repository。保存并关闭。

导入项目并进行编译

打开File->import->Maven->Existing Maven Projects,点击next后选择项目的pom.xml文件,进行导入。

导入成功后,在根项目右键选择Run As,选择Run build。初次时,会需要设置,在Goals那里输入claen package,勾选Offline,并点击Apply进行保存。最后run即可进行编译。

image-20210523145611591

image-20210523145712028

备注:Update项目依赖时,有可能会卡住。这时候需要先update子项目的依赖,再update根项目的依赖。