内网maven,使用本地库,不下载行吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内网maven,使用本地库,不下载行吗相关的知识,希望对你有一定的参考价值。

参考技术A maven
内网使用Maven本地仓库环境

郝少
原创大数据领域优质创作者
关注
3点赞·1762人阅读
一、需求说明
        在内网开发中,由于不能上网的情况下,需要离线使用一些下载好的maven依赖仓库,这个时候需要一些特殊的配置,才能正确的使用;
二、配置步骤
1、下载并配置maven环境
配置maven环境变量:
MAVEN_HOME:
C:\MyselfApplication\WinSoft\Maven\apache-maven-3.5.0

Path:
%MAVEN_HOME%\bin
登录后复制
查看是否配置成功:mvn -v

 2、修改配置文件
这里maven仓库的建设位置为:C:\MyselfApplication\WinSoft\Maven\maven_localRepository;在C:\MyselfApplication\WinSoft\Maven\apache-maven-3.5.0\conf下的setting.xml中增加如下配置:

<localRepository>C:\MyselfApplication\WinSoft\Maven\maven_localRepository</localRepository>

<offline>true</offline>

<mirrors>
<mirror>
<id>central</id>
<mirrorOf>*</mirrorOf>
<name>central</name>
<url>file://C:\MyselfApplication\WinSoft\Maven\maven_localRepository</url>
</mirror>
</mirrors>
登录后复制

3、删除_remote.repositories文件
        将maven仓库下新拷贝过来的依赖文件夹下面的_remote.repositories文件进行删除,否则还是会从远程仓库中找;

windows删除命令:for /r %i in (_remote.repositories) do del %i

C:
cd MyselfApplication/WinSoft/Maven/maven_localRepository
for /r %i in (_remote.repositories) do del %i
登录后复制
 4、IDEA配置
maven
有什么不氪金的手游
精选推荐
广告

内网上传maven依赖到 Nexus 库

好记忆不如烂笔头,能记下点东西,就记下点,有时间拿出来看看,也会发觉不一样的感受。

目录

概括

1.下载依赖到本地

2.将依赖上传

3.创建推送脚本

4.编写执行命令


概括

有些时候,开发面临的问题是需要在内网进行开发,即:无网络的情况下开发。那么自然而然就会遇到一个问题:使用java语言开发业务的时候,框架所依赖的jar文件就没有办法再内网完成,那就需要将提前下载好的依赖文件,放入到某个目录,然后使用脚本将maven的仓库信息推送到nexus库上去。

1.下载依赖到本地

首先将业务系统所需要的依赖获取到,放到本地的某个文件夹。为了省事,可以直接将maven的 repository 下的所有依赖全部拷贝出来,放入固定文件夹(d: //repository)

2.将依赖上传

在目标系统下,创建文件夹,用来存放d: //repository/ 下的文件,比如穿件/home/repository/,使用xshell 工具将d: //repository/ 下的文件 全部放入到 /home/repository/ 下

3.创建推送脚本

推送脚本mavenInstall.sh 主要是使用命令将/home/repository/ 的文件都推送到Nexus去,在/home/repository/ 下创建 mavenInstall.sh ,具体写法如下:

#/bin/bash
#
#
while getopts ":r:u:p:" opt; do
case $opt in
r) REPO_URL="$OPTARG"
;;
u) USERNAME="$OPTARG"
;;
p) PASSWORD="$OPTARG"
;;
esac
done
find . -type f -not -path './mavenimport\\.sh*' -not -path '*/\\.*' -not -path '*/\\^archetype\\-catalog\\.xml*' -not -path '*/\\^maven\\-metadata\\-local*\\.xml' -not -path '*/\\^maven\\-metadata\\-deployment*\\.xml' | sed "s|^\\./||" | xargs -I '' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T  $REPO_URL/;

一定要注意编码,linux 和windows 的编码格式,会导文件执行出错。

4.编写执行命令

执行命令的书写如下所示:

写法:

./mavenInstall.sh -u 用户名 -p 密码 -r 创库地址

样例:

./mavenInstall.sh -u root -p root!@# -r http://192.128.170.1:8081/repository/demo-repo/

注意:还是编码字符集的问题,如果编码不一致,容易出问题。

最后执行推送命令,就可以完成在内网情况下,将maven依赖推送到nexus服务器。进而在你的项目中使用内网的nexus配置信息,进行依赖的获取。

以上是关于内网maven,使用本地库,不下载行吗的主要内容,如果未能解决你的问题,请参考以下文章

内网上传maven依赖到 Nexus 库

内网上传maven依赖到 Nexus 库

将远程 maven2 工件下载到本地存储库的简单命令行?

从零开始的Devops-软件源

maven nexus 如何让下载的jar不传到本地仓库

内网机器,使用mvn打包时怎样指定使用本地仓库,而不去外网(中央仓库)下载