没有外网,IDEA如何离线使用maven仓库?

我们开发涉密项目的时,需要在内网的环境下调试程序,这时候一个比较头疼的问题是无法下载相关的maven依赖,导致项目无法编译启动。怎么解决这个问题呢?
??

第一步,将相关的maven依赖在外网的环境中下载好,然后将整个repository打包后拷贝到内网的机器上并解压:
repo

第二步,将maven的配置文件settings.xml拷贝一份出来,在localRepository中配置本地仓库的地址。例如我刚才拷贝出来的仓库放在D:/repository下,然后配置下本地的镜像,本地仓库的地址一定要配置正确。

<?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>

  <mirrors>

	 <mirror>
            <id>central</id>
            <name>central</name>
            <!-- 将镜像地址设置为本地maven地址 -->
            <url>file://D:/repository</url>
            <mirrorOf>*</mirrorOf>
        </mirror>
  </mirrors>
</settings>

第三步,打开IDEA的maven设置:file->settings搜索maven。注意要将maven设置为Work offline(离线模式),然后将User settings file配置成上一步拷贝的settings.xml的地址,点击OK。
offline

这个时候就已经完成maven的离线配置了。如果还不行可以刷新一下maven的依赖,点击reimport,然后依赖就可以导入进来了。如果还是红色的线,可以尝试点击启动项目,看是不是报错,有的时候可能是没有及时刷新导致的。

另外分享一个maven离线打包的命令:mvn -o,此命令是在maven打包的时候不去下载仓库的依赖,非常有用。

mvn clean package -o -DskipTest
// 或者使用这种方式跳过测试
mvn clean package -o -Dmaven.test.skip=true

多总结,常积累,加油!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章