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>
- 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 文档注释
- Building_a_Recurrent_Neural_Network_Step_by_Step_v3b
- gym 搭建 RL 环境
- MNIST练习
- Dinosaurus_Island_Character_level_language_model_final_v3b
- Trigger_word_detection_v1a
- 《深入浅出SQL》问答录(二)
- 《深入浅出SQL》问答录(四)
- 《深入浅出MySQL》问答录(五)
- 《深入浅出SQL》问答录(七)
- 《深入浅出SQL》问答录(八)
- Improvise_a_Jazz_Solo_with_an_LSTM_Network_v3a-2
- 《深入浅出SQL》问答录(九)
- 《深入浅出SQL》问答录(十)
- Operations_on_word_vectors_v2a
- LeetCode精选好题(一)