Fork me on GitHub

Maven 私库 Nexus3 搭建使用

Maven 私库 nexus3 搭建使用

docker 安装 sonatype/nexus3

1. 创建挂载目录 mkdir -p v-nexus/data 并修改目录权限 chown -R 200 v-nexus/data

2. 创建部署脚本

# 默认用户名 admin/admin123
version: '3.2'

services:
  nexus:
restart: always
image: sonatype/nexus3
ports:  #自定义端口
  - target: 8081
published: 18081   #只有 worker 能访问该端口
protocol: tcp
mode: host  #版本要求 3.2
volumes:
  - "/dockerdata/v-nexus/data:/nexus-data"
deploy:
  replicas: 1
  restart_policy:
condition: on-failure
  placement:
constraints: [node.hostname == lfadmin]

3. 测试访问http://192.168.1.213:18081/ 然后输入 admin 和 admin123 进行登陆即可

##win10 下 maven 安装

1. 下载 apache-maven-3.5.4-bin.zip 然后解压

2. 添加环境变量, 新建系统环境变量 Maven_HOME 值为解压路径,编辑 path 环境变量添加 %Maven_HOME%\bin

3. 命令窗口测试 mvn -v,只支持 cmd

4. 修改 apache-maven-3.5.4\conf\settings.xml 文件

<!--jar 本地缓存地址 -->
<localRepository>D:\MavenRepository</localRepository>

完整的 setting.xml 设置

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <!--  jar 本地缓存地址 -->
  <localRepository>D:\MavenRepository</localRepository>

  <pluginGroups>

  </pluginGroups>

  <proxies>

  </proxies>


  <servers>
     <!-- 配置权限, 使用默认用户 -->
<server>
      <!-- 这里的 id 要和项目里的 pom.xml 的 id 一致 -->
  <id>nexus-releases</id>
  <username>admin</username>
  <password>admin123</password>
</server>
    <server>
  <id>nexus-snapshots</id>
  <username>admin</username>
  <password>admin123</password>
</server>
  </servers>

  <mirrors>

  </mirrors>

  <profiles>
<profile>
  <id>MyNexus</id>

  <activation>
<jdk>1.4</jdk>
  </activation>

  <repositories>
    <!-- 私有库地址 -->
<repository>
  <id>nexus</id>
  <name>>Nexus3 Repository</name>
           <!-- 注意修改成对应的 IP, 在 nexus 里面复制 public 里面的地址 -->
  <url>http://192.168.1.213:18081/repository/maven-public/</url>

          <releases> 
<enabled>true</enabled> 
  </releases> 
  <!-- snapshots 默认是关闭的,需要手动开启 --> 
  <snapshots> 
<enabled>true</enabled> 
  </snapshots> 
</repository>

</repositories>
      <pluginRepositories>
   <!-- 插件库地址 -->
  <pluginRepository>
<id>nexus</id>
<url>http://192.168.1.213:18081/repository/maven-public/</url>
<releases>
  <enabled>true</enabled>
</releases>
<snapshots>
  <enabled>true</enabled>
 </snapshots>
  </pluginRepository>
</pluginRepositories>
</profile>

  </profiles>

 <!-- 激活 profile-->
  <activeProfiles>
<activeProfile>MyNexus</activeProfile>
  </activeProfiles>

</settings>

6. 在项目的 pom.xml 修改或添加如下配置

<?xml version="1.0" encoding="UTF-8"?>
<project ...>
....
<!-- 配置 maven 地址 -->
    <distributionManagement>
        <repository>
 <!-- 这里的 id 要和 maven 里的的 settings.xml 的 id 一致 -->
            <id>nexus-releases</id>
            <name>Nexus Release Repository</name>
            <url>http://192.168.1.213:18081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <name>Nexus Snapshot Repository</name>
            <url>http://192.168.1.213:18081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
...
</project>

7. 编译在 cmd 执行 mvn install 发布上传 jar 执行 mvn deploy,可以到 nexus 地址进行检查

8. 使用私库下载和上传是一样的

nexus3 配置阿里云代理仓库

1. 点击Create Repository->maven2(proxy)

2. 添加名字 aliyun-proxy 设置阿里云 url 地址http://maven.aliyun.com/nexus/content/groups/public

3. 设置阿里云优先级,在 maven-public 里面的 group 把刚刚创建的添加过去并移到 maven-central 上面

4. 设置允许发布 release, 在 maven-release 的 hosted 里面选择 allow redeploy

发布上传 jar 包到 nexus

语法:

mvn deploy:deploy-file \ 
  -DgroupId=<group-id> \
  -DartifactId=<artifact-id> \
  -Dversion=<version> \
  -Dpackaging=<type-of-packaging> \
  -Dfile=<path-to-file> \
  -DrepositoryId=< 这里的 id 要和 maven 里的的 settings.xml 的 id 一致 > \
  -Durl=<url-of-the-repository-to-deploy>

实战

mvn deploy:deploy-file \
-Dfile=spring-boot-starter-druid-0.0.1-SNAPSHOT.jar \
-DgroupId=cn.binux \
-DartifactId=spring-boot-starter-druid \ 
-Dversion=0.0.1-SNAPSHOT \ 
-Dpackaging=jar \ 
-DpomFile=spring-boot-starter-druid-0.0.1-SNAPSHOT.pom \
-DrepositoryId=nexus-snapshots \
-Durl=http://192.168.1.213:18081/repository/maven-snapshots/

上传 jar 包到私有 maven 仓库

mvn deploy:deploy-file -Dfile=spring-boot-starter-druid-0.0.1-SNAPSHOT.jar -DgroupId=cn.binux -DartifactId=spring-boot-starter-druid -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar -DpomFile=spring-boot-starter-druid-0.0.1-SNAPSHOT.pom -DrepositoryId=nexus-snapshots -Durl=http://192.168.1.213:18081/repository/maven-snapshots/

mvn deploy:deploy-file -Dfile=spring-boot-starter-dubbox-0.0.1-SNAPSHOT.jar -DgroupId=cn.binux -DartifactId=spring-boot-starter-dubbox -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar -DpomFile=spring-boot-starter-dubbox-0.0.1-SNAPSHOT.pom -DrepositoryId=nexus-snapshots -Durl=http://192.168.1.213:18081/repository/maven-snapshots/

mvn deploy:deploy-file -Dfile=spring-boot-starter-redis-0.0.1-SNAPSHOT.jar -DgroupId=cn.binux -DartifactId=spring-boot-starter-redis -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar -DpomFile=spring-boot-starter-redis-0.0.1-SNAPSHOT.pom -DrepositoryId=nexus-snapshots -Durl=http://192.168.1.213:18081/repository/maven-snapshots/

#这个不是 snapshots 要发布到 releases,注意设置 nexus 为允许发布,看 jar 报后缀,没有 `SNAPSHOT` 就是 release
mvn deploy:deploy-file -Dfile=dubbo-2.8.4.jar -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.8.4 -Dpackaging=jar -DrepositoryId=nexus-releases -Durl=http://192.168.1.213:18081/repository/maven-releases/

mvn deploy:deploy-file -Dfile=fastdfs-1.24.jar -DgroupId=org.csource -DartifactId=fastdfs -Dversion=1.24 -Dpackaging=jar -DrepositoryId=nexus-releases -Durl=http://192.168.1.213:18081/repository/maven-releases/

mvn deploy:deploy-file -Dfile=examples-1.0.jar -DgroupId=com.haikang -DartifactId=examples -Dversion=1.0 -Dpackaging=jar -DrepositoryId=nexus-releases -Durl=http://192.168.1.230:18081/repository/maven-releases/

本地安装 jar 包到本地 maven 仓库

mvn install:install-file -Dfile=spring-boot-starter-druid-0.0.1-SNAPSHOT.jar -DgroupId=cn.binux -DartifactId=spring-boot-starter-druid -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar
mvn install:install-file -Dfile=spring-boot-starter-dubbox-0.0.1-SNAPSHOT.jar -DgroupId=cn.binux -DartifactId=spring-boot-starter-dubbox -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar
mvn install:install-file -Dfile=spring-boot-starter-redis-0.0.1-SNAPSHOT.jar -DgroupId=cn.binux -DartifactId=spring-boot-starter-redis -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar
mvn install:install-file -Dfile=dubbo-2.8.4.jar -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.8.4 -Dpackaging=jar
mvn install:install-file -Dfile=fastdfs-1.24.jar -DgroupId=org.csource -DartifactId=fastdfs -Dversion=1.24 -Dpackaging=jar

问题

下载了找不到包,解决,删除项目重新导入,重新 maven 依赖

刚上传或添加了新的 jar 到私库,无法下载,解决,删除本地仓库的该包目录

赞赏是最好的支持与鼓励!
-------------本文结束感谢您的阅读-------------