Loading... ## 安装 > 本次通过docker安装 #### 配置要求 参考官方文档:[System Requirements](https://help.sonatype.com/repomanager3/product-information/system-requirements) 1. 官方推荐 >= 4C4G ```shell $ mkdir -p /data/nexus && chown -R 200 /data/nexus $ docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 --name nexus3 -v /data/nexus:/nexus-data --restart=always sonatype/nexus3 ## jvm调整 由于服务器32G内存,可以适当调整jvm最大限制 $ -e INSTALL4J_ADD_VM_PARAMS="-Xms6G -Xmx6G -Djava.util.prefs.userRoot=/some-other-dir # 查看日志 $ docker logs -f id ``` <div class="tip inlineBlock warning"> * 8082端口是用于host镜像仓库的服务端口 * 8083端口用户group镜像仓库的服务端口 * 8081 端口是nexus的服务端口 </div> 2. 查看默认密码 ```shell $ docker exec nexus3 cat /nexus-data/admin.password 7014953b-1ca9-4899-a7e7-0ee9a55cf78e ``` 3. 登陆面板:http://ip:8081 #### 开始配置 我们以搭建maven为例 ###### 仓库类型介绍 <div class="tip inlineBlock info"> 1. group: 英文翻译为:“组,群,批”,这是一个仓库聚合的概念,用户仓库地址选择`group`的地址,即可访问`group`中配置的、用于方便开发人员自己设定的仓库。 2. hosted:宿主仓库,内部项目的发布仓库,专门用来存储我们自己的jar文件 3. snapshots:本地项目的快照版本,一般用来做开发中的一些需要实时更新文件的仓库 4. releases:本地项目发布正式版本 5. proxy:代理类型,从远程中央仓库中寻找数据的仓库,如可配置阿里云的maven仓库,当本地自己配置的私有仓库没找到的时候就会去远程数据仓库拉取。 </div> ##### 配置maven私服(下载依赖) 1. 当我们在maven中使用`group`类型仓库地址的时候,会按照如下顺序访问:本地仓库 -> 私服maven-releases -> 私服maven-snapshots -> proxy类型仓库 -> 远程中央仓库。 ##### 通过`setting.xml`文件配置 (1)setting.xml文件配置样例如下。 ```xml <mirrors> <!--私有仓库--> <mirror> <!--该镜像的唯一标识符。id用来区分不同的mirror元素。 --> <id>tool-public</id> <mirrorOf>*</mirrorOf> <name>tool-public</name> <url>http://ip:8083/repository/tool-public/</url> </mirror> </mirrors> ``` <div class="tip inlineBlock warning"> **mirrorOf的使用** * 匹配所有 * external:* 除了本地缓存之后的所有仓库 * *,!tool-public 除了tool-public的所有仓库 </div> (2)如果仓库不是公开的还需要配置账户与密码 [点击查看](https://maven.apache.org/settings.html) ```xml <servers> <server> <!--该id与repository/mirror元素的id相匹配 --> <id>server001</id> <!--鉴权用户名 --> <username>my_login</username> <!--鉴权密码 --> <password>my_password</password> <!--鉴权时使用的私钥位置 --> <privateKey>${usr.home}/.ssh/id_dsa</privateKey> <!--鉴权时使用的私钥密码。 --> <passphrase>some_passphrase</passphrase> <!--文件被创建时的权限,这两个元素合法的值是一个三位数字,其对应了unix文件系统的权限,如664,或者775。 --> <filePermissions>664</filePermissions> <!--目录被创建时的权限。 --> <directoryPermissions>775</directoryPermissions> </server> </servers> ``` ##### 通过`pom.xml`文件配置 1. 样例 ```xml <repositories> <repository> <releases> <enabled>true<enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy> </releases> <snapshots> <enabled>true<enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy> </snapshots> <!-- 远程仓库唯一标识符。可以用来匹配在settings.xml文件里配置的远程仓库 --> <id>tool-public</id> <!-- 远程仓库名称 --> <name>tool-public</name> <url>http://ip:8083/repository/tool-public/</url> <layout> default </layout> </repository> </repositories> ``` 2. 配置私服(下载插件) ```xml <pluginRepositories> <pluginRepository> <id>maven-nexus</id> <name>maven-nexus</name> <url>http://ip:8083/repository/tool-public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> ``` 3. 配置私服(发布依赖) <div class="tip inlineBlock warning"> **注意**:repository 里的 id 需要和上一步里的 server id 名称保持一致。 </div> ```xml <distributionManagement> <repository> <id>server001</id> <name>Releases</name> <url>http://ip:8083/repository/tool/</url> </repository> <snapshotRepository> <id>server001</id> <name>Snapshot</name> <url>http://ip:8083/repository/tool-snapshots/</url> </snapshotRepository> </distributionManagement> ``` ### 备份nexus数据 > nexus提供了相关任务执行 > Nexus Repository Manager --> System --> Tasks --> Create task --> "Admin - Export databases for backup" 最后修改:2022 年 10 月 03 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 社会很单纯~复杂滴是人呐~谁能在乎我呀