如何在不允许联网的环境下使用Maven开发

前言:Maven的运行机理是:Maven核心组件先去本地的.m2目录下的库中去寻找依赖或者插件,如果本地库里没有,如果配置了私服则上私服去下载依赖或者插件,如果私服上没有,则上中央服务等Maven服务器起下载。因此,所有的依赖和插件都源于中央服务器。可是在有些苛刻环境下,是不允许局域网和外网有任何连接,而又想使用Maven来构建项目,那怎么办呢?以下将讲述具体步骤:

1)寻找一台可以联网的电脑,在上边搭建nexus私服;

2)配置setting.xml文件,使得本地开发环境依赖nexus私服:

首先在<mirrors>标签下添加:

<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://localhost:8080/nexus/content/groups/public</url>
</mirror>
然后再<profiles>标签下添加:

<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>

<!--必须配置以下插件库依赖,这样Maven才会百分之百依赖私服,否则Maven在私服上找不到插件,在等待一点时间以后,就会自己去中央服务器上去下载,加上如下配置,则不会绕过私服。-->
<pluginRepositories>
<pluginRepository>
<id>central</id>
<!--这个地址已经无所谓了-->
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
最后,在<settings>标签下添加以下配置,激活上边的<mirror>

<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>

如果不理解镜像<mirror>的含义,则可以查下其他资料。只有强行控制maven使之依赖于私服,才能在封闭的局域网内进行maven开发,否则maven仍然会上中央服务器去下载依赖和插件,则会出现错误。

3)使用maven搭建开发环境,并完成clean、package、test等动作。总之一个目的:使得nexus可以下载尽量多的插件和依赖。

4)拷贝nuxus(可能是bundle的形式或者是在war的形式)和.m2的兄弟目录sonatype-work文件夹到局域网的web服务器上(当然能用usb接口,或者其他传输工具,否则只能跳楼了),然后启动web服务器。

5)使用上边介绍的配置方式配置局域网内的开发机setting.xml文件,使之完全依赖于部署在局域网内的私服。

至此,部署完毕。这里注意刚才的snatype-work文件夹,打开这个目录,可以看到在其下的nexus文件夹里存储了nexus的很多数据,如索引、依赖、插件等。其中storage中存储的是中央服务器、第三方组件等。大家可以自己打开研究下。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值