搭建Nexus私服部署项目

当你需要在团队或组织内部管理和共享软件包、依赖项以及其他构建资产时,搭建一个私有的 Maven 仓库是一个非常有用的举措。Nexus Repository Manager 是一个受欢迎的工具,可以用于创建和管理私有 Maven 仓库。本篇博客文章将指导你如何搭建 Nexus 私服并部署项目,以更有效地管理你的构建过程。

第一步:准备工作

在开始搭建 Nexus 私服之前,确保你已经满足以下要求:

  1. 安装 Java:Nexus 运行在 Java 虚拟机上,所以确保你的系统已经安装了 Java。你可以使用 OpenJDK 或 Oracle JDK。
  2. 下载 Nexus:前往 Sonatype 官方网站 下载最新的 Nexus Repository Manager OSS 版本。
  3. 安装 Docker(可选):如果你想使用 Docker 来运行 Nexus,确保你已经安装了 Docker。Docker 可以让 Nexus 安装和管理变得更加容易。

第二步:安装 Nexus

方式一:手动安装

  1. 下载 Nexus Repository Manager OSS,并解压缩下载的文件。

  2. 进入解压后的 Nexus 目录。

  3. 打开 bin/nexus.vmoptions 文件,可以根据你的需要修改内存分配(选做)。

  4. 在bin目录下执行以下命令启动 Nexus 服务:

    ./nexus run
    

    这将启动 Nexus 服务,你可以在浏览器中访问 http://localhost:8081 来配置和管理 Nexus。

    默认是8081端口,可能需要防火墙打开该端口才能访问。

方式二:使用 Docker 安装

如果你使用 Docker,可以通过以下命令来拉取并运行 Nexus:

docker run -d -p 8081:8081 --name nexus sonatype/nexus3

这将在你的机器上启动一个 Nexus 容器。

第三步:配置 Nexus

无论是手动安装还是 Docker 安装,接下来需要进行 Nexus 的基本配置。

  1. 打开浏览器,访问 http://localhost:8081(或你配置的端口)。
  2. 在首次访问时,你需要登录并修改初始管理员密码。
    在这里插入图片描述
  • 在该目录下有初始用户密码,可以cat命令查看,并复制
    在这里插入图片描述
  • 登录,并按照提示修改初始密码
    在这里插入图片描述
  1. 创建一个 Maven 仓库:在左侧导航栏中,点击 “Repositories”,然后点击 “Create repository” 来创建一个 Maven2 (hosted) 仓库。这个仓库将用于部署项目。
  • 选择Create repository
    在这里插入图片描述
  • 创建maven2(hosted),输入仓库名称,选择类型,修改Allow redeploy,最后点击Create repository
    在这里插入图片描述
  • 将创建的仓库合到maven-public
    在这里插入图片描述
  1. 配置 Maven 设置:在你的项目的 settings.xml 文件中,添加 Nexus 私服的信息,包括 URL 和认证凭证。
  • 配置server,id以后需要用到,用户名密码与Nexus一致

      <server>
       <id>my-repository</id>
       <username>admin</username>
       <password>123</password>
     </server>
     <server>
       <id>my-releases</id>
       <username>admin</username>
       <password>123</password>
     </server>
     <server>
       <id>my-snapshots</id>
       <username>admin</username>
       <password>123</password>
     </server>
    
  • 配置镜像,包括阿里云镜像和私服镜像,根据自己ip地址修改

     <mirror>
       <id>alimaven</id>
       <mirrorOf>central</mirrorOf>
       <name>aliyun maven</name>
       <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
     </mirror>
    
     <mirror>
       <id>my-repository</id>
       <mirrorOf>*</mirrorOf>
       <name>my-repository</name>
       <url>http://192.168.16.128:8081/repository/maven-public/</url>
     </mirror>
    
  • 配置profile,根据自己ip地址修改

     <profile>
      <id>JDK-1.8</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
      </activation>
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>
    </profile>
    
    <profile>
      <!--profile
      的 id-->
      <id>nexus</id>
      <repositories>
        <repository>
          <!--仓库
          id,repositories 可以配置多个仓库,保证 id 不重复-->
          <id>nexus</id>
          <!--仓库地址,即
          nexus 仓库组的地址-->
          <url>http://192.168.16.128:8081/repository/maven-public/</url>
          <!--是否下载
          releases 构件-->
          <releases>
            <enabled>true</enabled>
          </releases>
          <!--是否下载
          snapshots 构件-->
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <!-- 插件仓库,maven 的运行依赖插件,也需要从私服下载插件 -->
        <pluginRepository>
          <!-- 插件仓库的 id 不允许重复,如果重复后边配置会覆盖前边 -->
          <id>public</id>
          <name>Public Repositories</name>
          <url>http://192.168.201.81:8081/repository/maven-public/</url>
          <!--是否下载
          releases 构件-->
          <releases>
            <enabled>true</enabled>
          </releases>
          <!--是否下载
          snapshots 构件-->
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
    
    <activeProfiles>
      <activeProfile>nexus</activeProfile>
    </activeProfiles>
    
  1. Java项目的pom文件中加入配置,根据自己xml的serve,ip修改

    <distributionManagement>
        <snapshotRepository>
            <id>my-snapshots</id>
            <url>http://192.168.16.128:8081/repository/my-snapshots/</url>
        </snapshotRepository>
        <repository>
            <id>my-releases</id>
            <url>http://192.168.16.128:8081/repository/my-releases/</url>
        </repository>
    </distributionManagement>
    
    <repositories>
        <repository>
            <id>nexus</id>
            <url>http://192.168.16.128:8081/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    
    mvn deploy
    
  2. 在maven管理工具中可以先clean清理,再deploy发布到仓库中。

    在这里插入图片描述
    如果要打包,pom文件中需要引入打包插件

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.6.13</version>
            </plugin>
        </plugins>
    </build>
    

    如果是项目模块中没有启动入口,可以使用下列打包方式

    <build>
        <plugins>
            <!-- 编译源代码插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
            <!-- 打包源代码插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <configuration>
                    <attach>true</attach>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    

    如果发布成功,可以在Nexus相应的仓库查看到上传的包
    在这里插入图片描述

第四步:使用 Nexus

现在,你可以使用 Nexus 私服来管理你的项目的依赖关系和构建资产。以下是一些你可以在 Nexus 上执行的常见操作:

  • 下载依赖项:在你的项目中,可以通过设置 Maven 的 settings.xml 文件来指向 Nexus,然后 Maven 将从私有仓库中下载依赖项。
  • 部署项目:使用 Maven 的 deploy 命令,你可以将你的项目构建部署到 Nexus 仓库中,以便团队其他成员可以访问并使用它。
  • 创建代理仓库:Nexus 支持创建代理仓库,以代理远程 Maven 仓库。这可以加快依赖项的下载速度。
  • 配置访问策略:你可以设置访问策略,包括授权和匿名访问,以确保私有仓库的安全性。

搭建一个 Nexus 私服并将项目部署到其中是一个重要的步骤,特别是当你需要更好地管理和控制构建过程、依赖关系和安全性时。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值