maven私服搭建及数据迁移
时间:2022-07-22
本文章向大家介绍maven私服搭建及数据迁移,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
docker部署nexus
使用docker的方式部署,在创建容器之前先创建好存放nexus的数据目录
mkdir -p /export/server/nexus3-server/data
chown -R 200 /export/server/nexus3-server/data
启动容器
docker run -d -p 8082:8081 --restart always --name nexus-server -v /export/server/nexus3-server/data:/nexus-data sonatype/nexus3
启动过程比较慢,耐心等待几分钟,可以通过查看日志来看启动过程
docker logs -f nexus-server
另外nexus私服在启动时可以指定jvm参数,例如:
-e INSTALL4J_ADD_VM_PARAMS="-Xms2g -Xmx2g -XX:MaxDirectMemorySize=3g
访问测试
ip:8082
用户名:admin 密码:admin123
迁移
直接备份nexus的整个数据目录,要迁移的数据为老的私服数据,目录在 $HOME/sonatype-work/nexus3目录下
# tree -L 1
.
├── backup
├── blobs
├── cache
├── db
├── elasticsearch
├── etc
├── generated-bundles
├── health-check
├── instances
├── javaprefs
├── kar
├── keystores
├── lock
├── log
├── orient
├── port
├── restore-from-backup
├── tmp
└── upgrades
把这些目录进行打包,可以排除cache(如果把此目录打包进去,在迁移结束,启动之前要将cache目录删除掉,否则会启动失败)和log目录打包
tar zcvf nexus_data.tgz --exclude=cache --exclude=log
开始迁移前需要将nexus服务停掉
docker contaienr stop nexus-server
然后解压,重启容器即可,完成后,便可进行访问测试
以上是maven的私服仓库搭建和数据迁移,下面是maven的settings.xml文件参考
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="https//maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="https//www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https//maven.apache.org/SETTINGS/1.0.0 https//maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>/data/maven/repository/</localRepository>
<servers>
<server>
<id>maven-releases</id>
<username>jenkins</username>
<password>密码</password>
</server>
<server>
<id>maven-public</id>
<username>jenkins</username>
<password>密码</password>
</server>
// 这里的id cdvcloud 是我们在nexus上单独配置的一个hosted类型的私有仓库,用来存放自有的一些依赖包等
// 这里的id 也要和仓库名对应起来
<server>
<id>cdvcloud</id>
<username>jenkins</username>
<password>密码</password>
</server>
<server>
<id>maven-snapshots</id>
<username>jenkins</username>
<password>密码</password>
</server>
<server>
<id>docker-hub</id>
<username>admin</username>
<password>Harbor12345</password>
<configuration>
<email>邮箱</email>
</configuration>
</server>
</servers>
//先找本地缓存,本地没有,再找本地私服,本地私服没有,再找网络上的阿里仓
<mirrors>
<mirror>
<id>maven-local</id>
<name>maven-local</name>
<mirrorOf>maven-local</mirrorOf>
<url>/data/maven/repository/</url>
</mirror>
<mirror>
<id>maven-public</id>
<name>maven-public</name>
<mirrorOf>maven-public</mirrorOf>
<url>http://私服域名/repository/maven-public/</url>
</mirror>
<mirror>
<id>aliyun-public</id>
<name>aliyun-public</name>
<mirrorOf>center</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>nexus</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>cdvcloud</id>
<url>http://私服域名/repository/cdvcloud/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>maven-releases</id>
<url>http://私服域名/repository/maven-releases/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>alimaven</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>maven-snapshots</id>
<url>http://私服域名/repository/maven-snapshots/</url>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>jdbc:postgresql://192.168.0.130:8084/sonar</sonar.jdbc.url>
<sonar.jdbc.driver>org.postgresql.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>Sonar@123</sonar.jdbc.password>
<sonar.host.url>http://sonar域名</sonar.host.url>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
<activeProfile>sonar</activeProfile>
</activeProfiles>
</settings>
以上为公司在使用的配置文件,仅供参考。
nexus配置参考
创建两个仓库,一个专门存放私有包的,另一个用来做代理阿里仓库的
配置完上面两个仓库后,需要最后在public中引用下
角色授权
全部仓库可读
开发者的权限
上传jar包的权限
一个私服代理另一个私服
比如生产环境和测试环境都需要一个私服,但是在平时的开发过程中,测试环境的私服里的私有包经常会变化,如果要定期对测试环境的私服做迁移,工作量则会有点大,所以通过代理的方式,线上私服代理测试私服。
线上nexus配置参考
中央仓库代理的便是测试私服的私有包仓库
还有一个是代理的阿里公仓
下面是maven的参考
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="https//maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="https//www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https//maven.apache.org/SETTINGS/1.0.0 https//maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>/data/maven/repository/</localRepository>
<servers>
<server>
<id>maven-releases</id>
<username>jenkins</username>
<password>密码</password>
</server>
<server>
<id>maven-public</id>
<username>jenkins</username>
<password>密码</password>
</server>
// 这里的id cdvcloud 是我们在nexus上单独配置的一个hosted类型的私有仓库,用来存放自有的一些依赖包等
// 这里的id 也要和仓库名对应起来
<server>
<id>cdvcloud</id>
<username>jenkins</username>
<password>密码</password>
</server>
<server>
<id>maven-snapshots</id>
<username>jenkins</username>
<password>密码</password>
</server>
<server>
<id>docker-hub</id>
<username>admin</username>
<password>Harbor12345</password>
<configuration>
<email>邮箱</email>
</configuration>
</server>
</servers>
//先找本地缓存,本地没有,再找本地私服,本地私服没有,再找网络上的阿里仓
<mirrors>
<mirror>
<id>maven-local</id>
<name>maven-local</name>
<mirrorOf>maven-local</mirrorOf>
<url>/data/maven/repository/</url>
</mirror>
<mirror>
<id>maven-public</id>
<name>maven-public</name>
<mirrorOf>maven-public</mirrorOf>
<url>http://私服域名/repository/maven-public/</url>
</mirror>
<mirror>
<id>aliyun-public</id>
<name>aliyun-public</name>
<mirrorOf>center</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>nexus</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>cdvcloud</id>
<url>http://私服域名/repository/cdvcloud/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>maven-releases</id>
<url>http://私服域名/repository/maven-releases/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>alimaven</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>maven-snapshots</id>
<url>http://私服域名/repository/maven-snapshots/</url>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>jdbc:postgresql://192.168.0.130:8084/sonar</sonar.jdbc.url>
<sonar.jdbc.driver>org.postgresql.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>Sonar@123</sonar.jdbc.password>
<sonar.host.url>http://sonar域名</sonar.host.url>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
<activeProfile>sonar</activeProfile>
</activeProfiles>
</settings>
- [快学Python3]JSON解析
- Codeforces 754A Lesha and array splitting(简单贪心)
- [快学Python3]日期和时间处理
- Codeforces Round #412 (rated, Div. 2, base on VK Cup 2017 Round 3)(A.B.C,3道暴力题,C可二分求解)
- [快学Python3]目录与文件操作
- Codeforces Round #411 (Div. 2)(A,B,C,D 四水题)
- [快学Python3]INI文件读写
- [快学Python3]迭代器和生成器
- [快学Python3]模块和包
- 除法取模与逆元/费马小定理
- [快学Python3]类基础
- 邻接矩阵存储有向图(详解)
- [快学Python3]二分查找[策略优化版本]
- 使用 zipfile 解压含有中文文件名的 zip 文件
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 关于 Executor 和 ExecutorService
- 【队伍训练】Codeforces Round #660 (Div. 2)
- 【队伍训练2】 AtCoder Beginner Contest 165
- C# 的sql server like 的参数
- sql server 字符串替换函数REPLACE
- sql server 更新两个表的某个字段
- HTML 引用Css样式的四种方式
- Java也可以像python般range出连续集合
- c# dev控件 gridcontrol 数据跟随鼠标滚轮滚动也可以编辑
- Apollo(阿波罗)配置中心Java客户端使用指南使用指南
- DevExpress.LookUpEdit控件实现自动搜索定位功能 兼使用方法(looUpEdit可编辑)
- dev GridControl直接打印 纵向合并单元格
- Dooring可视化之从零实现动态表单设计器
- 我不是最后一个知道MDC的吧?
- 实战编写 wireshark 插件解析私有协议