行政部建设公司网站点匠网站开发流程
web/
2025/9/27 10:13:19/
文章来源:
行政部建设公司网站,点匠网站开发流程,seo搜索优化服务,华北建设集团有限公司oa网站Maven内网开发使用离线仓库
离线或者内网环境开发与外网不通#xff0c;中央仓库连不上#xff0c;使用 Maven 管理项目会遇到很多问题。 比如#xff1a;依赖包缺失#xff0c;内网的Nexus私服的包老旧#xff0c;很久没有维护#xff0c;项目无法运行打包#xff0c;…Maven内网开发使用离线仓库
离线或者内网环境开发与外网不通中央仓库连不上使用 Maven 管理项目会遇到很多问题。 比如依赖包缺失内网的Nexus私服的包老旧很久没有维护项目无法运行打包第三方非公开的私人 Jar 包引入麻烦。
本文面向这几个问题提出几个解决方法
解决方法
把项目弄外网打包好再传入× 都内网开发了保密要求不行不耍小聪明使用本地离线仓库离线打包√ 先上传到内网Nexus私服再使用√
具体操作
1.离线仓库
先说说离线仓库 首先在外网新建一个测试项目把需要的 jar 包依赖坐标都写在 pom.xml 物料清单里然后把依赖下载到本地仓库。
注意1 默认本地仓库比如D:/maven/maven_repo可能有历史项目曾用的 Jar 包占用空间会非常大。可以在 IDEA 的设置搜索Maven重写本地仓库路径比如D:/maven/demo_repo这里面仅包含本项目用到的 Jar 包。
注意2 把 demo_repo 压缩成 zip 包搞到内网后解压在仓库根路径下直接搜索关键字_remote/ lastUpdate搜到的文件都删除掉不然在内网还是去找远程仓库下载影响打包。
最简单的方法在本地仓库根目录搜索栏关键字删除 搜到的文件ctrlA全选再delete删除。 命令方式
# 打开仓库地址输入cmd 打开命令行执行下面语句
for /r %i in (_remote.repositories) do del %i
for /r %i in (lastUpdate) do del %i内网操作 进入 Maven 的 conf 目录复制 settings.xml 并重命名为 settings-offline.xml。修改 settings-offline.xml 文件修改以下几处。
!-- 本地仓库路径因为现使用离线方式可以注释掉 --
!-- localRepositoryD:/maven/maven_repo/localRepository --!-- 1. 找到 offline设置离线模式设置成 true --
offlinetrue/offline!-- 2. 找到镜像 mirrors设置离线模式 Maven 的镜像为本地仓库 --
mirrorsmirroridlocal-repo/idmirrorOf*/mirrorOfnamecentral/nameurlfile://D:/maven/demo_repo/url/mirror
/mirrors修改 Maven 的配置文件为 settings-offline.xml重写本地仓库为 D:/maven/demo_repo重启IDEA刷新即可。
2.上传到内网Nexus私服
Nexus私服搭建网络上有很多教程这里就不罗嗦了。 拥有 Nexus 管理员账号密码。 在 Nexus 上新建一个仓库比如http://localhost:8081/repository/demo-releases/
Nexus 页面手动一个个上传对于一两个SDK来说很方便整个仓库就很麻烦了。Nexus没提供批量上传文件夹的操作。但是有单个上传接口就可以写个脚本遍历本地仓库上传模拟批量上传。 该图来源于网络见右下角水印 把下面脚本 batch_upload_repo.sh 扔到本地仓库根目录整个仓库再扔到服务器上然后执行脚本(Windows 上使用 git-bash 执行脚本上传也行)结构相对位置例如D:\maven\demo_repo\com\oracle\ojdbc\ojdbc8\19.3.0.0D:\maven\demo_repo\batch_upload_repo.sh
sh mvnimport.sh -u yourusername -p yourpassword -r http://localhost:8081/repository/demo-releases/上传完成后刷新工程正常下载使用。
附批量上传脚本
#!/bin/bash
# batch_upload_repo.sh来源于网络
# copy and run this script to the root of the repository directory containing files
# this script attempts to exclude uploading itself explicitly so the script name is important
# Get command line params
while getopts :r:u:p: opt; docase $opt inr) REPO_URL$OPTARG;;u) USERNAME$OPTARG;;p) PASSWORD$OPTARG;;esac
donefind . -type f -not -path ./mvnimport\.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}/{} ;
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81159.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!