docker 安装 nexus

1.拉取镜像

docker pull sonatype/nexus3

2.运转容器

docker run -d -p 8081:8081  -p 8082:8082 --name nexus --restart=always -v /opt/docker-nexus/data:/var/nexus-data sonatype/nexus3

3.检查默许密码

进入容器
docker exec -it name bash
cat /nexus-data/admin.password

阿里云提供免费库房

[INFO] 阿里云Maven中央库房为阿里如此效提供的公共署理库房,云效也提供了免费、可靠的Maven私有库房Packages,欢迎您体验使用。www.aliyun.com/product/yun…

推送命令

mvn clean install org.apache.maven.plugins:maven-deploy-plugin:2.8:deploy -DskipTests

本地装备nexus库房

1.发动好nexus库房后

2.需求推的包的pom文件装备

这个是放项目里的pom文件(也能够装备在本地setting文件里),那个项目需求deploy就用这个装备,当然条件是本地maven的setting文件也必须要装备账号密码

<distributionManagement>
    <repository>
      <id>admin</id><!--账号-->
      <name>maven-releases</name>
      <url>http://ip:8081/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
      <id>admin</id>
      <name>maven-snapshots</name>
      <url>http://ip:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

3.本地maven setting文件装备账号密码

 <servers>
  
  <!-- Maven私服装备 -->
  <server>
    <id>admin</id> <!-- id 也是用户名 -->
    <username>admin</username> <!-- 用户名-->
    <password>xxx</password> <!-- 密码-->
  </server>
 </servers>

4.推送到私服库房

  • install: 是把jar推送到本地的maven库房
  • deploy:是把jar推送到你装备的远端库房

docker安装nexus

5.本地maven setting文件 装备私服库房,拉取依赖

<profiles>
    <profile>
   <!-- maven私服 -->
   <id>maven-nexus</id>
   <repositories>
     <repository>
       <id>admin</id>
       <name>admin</name>
       <url>http://ip:8081/repository/maven-public/</url>
       <releases>
         <enabled>true</enabled>
       </releases>
       <snapshots>
         <enabled>true</enabled>
       </snapshots>
     </repository>
   </repositories>
   <pluginRepositories>
     <pluginRepository>
       <id>admin</id>
       <name>admin</name>
       <url>http://ip:8081/repository/maven-public/</url>
       <releases>
         <enabled>true</enabled>
       </releases>
       <snapshots>
         <enabled>true</enabled>
       </snapshots>
     </pluginRepository>
   </pluginRepositories>
  </profile>
</profiles>
<activeProfiles>
 <!-- activeProfile的特点值便是上面profiles列表种profile的id,若不存在则忽视 -->
 <activeProfile>maven-nexus</activeProfile>
 <!-- <activeProfile>rdc</activeProfile> -->
</activeProfiles>
​
​

遇到的问题

jar不能重复deploy,解决办法很简单,把库房设置为允许重复deploy就行了

docker安装nexus

遗留问题

  • 库房下载能够装备多个,第一个地址下载不到就会去第二个地址下载,现在看便是写的顺序,在前面的装备先下载,都下载不到才会报错,暂时没问题
  • 库房deploy如同不能同时deploy两个地址,只会选取一个,能够根据来指定,可是两个都填进去的话也只会默许选一个,现在看是优先选私服,其次选阿里云的nexus,有点古怪,不过影响不大
<activeProfiles>
 <!-- activeProfile的特点值便是上面profiles列表种profile的id,若不存在则忽视 -->
 <activeProfile>maven-nexus</activeProfile>
 <!-- 两个都有的情况下默许会选soon-nexus 而不是aliyun-nexus -->
 <activeProfile>aliyun-nexus</activeProfile>
 <activeProfile>soon-nexus</activeProfile> 
</activeProfiles>

好文引荐

Linux下使用Nexus创立maven私服-腾讯云开发者社区-腾讯云 (tencent.com)