在Linux上搭建Maven仓库的实战教程

2024-01-03 11:42:22

引言

在Java开发中,Maven作为项目构建和依赖管理的重要工具,其仓库的搭建至关重要。本文将手把手教你如何在Linux系统上安装并配置Nexus Repository Manager 3(简称Nexus 3),从而创建一个私有的Maven仓库。

步骤一:下载与安装Nexus

  1. 下载Nexus
    访问官方下载页面:https://help.sonatype.com/repomanager3/product-information/download
    在这里插入图片描述

    获取适用于Linux系统的Nexus Repository Manager 3的安装包链接:https://download.sonatype.com/nexus/3/nexus-3.63.0-01-unix.tar.gz

  2. 上传并解压
    将下载好的安装包上传到Linux服务器,并使用以下命令进行解压:

    wget https://download.sonatype.com/nexus/3/nexus-3.63.0-01-unix.tar.gz
    tar -zxvf nexus-3.63.0-01-unix.tar.gz -C /usr/local/
    mv nexus-3.63.0-01 /usr/local/nexus3
    

    这样就把Nexus安装到了/usr/local/nexus3目录下。

步骤二:启动Nexus

  1. 直接运行
    要启动Nexus,只需进入安装目录执行启动脚本:

    cd /usr/local/nexus3
    ./bin/nexus run
    

    这时Nexus将会在前台启动,并显示日志输出。

  2. 后台运行
    如果你希望Nexus以守护进程模式在后台运行,可以使用如下命令:

    nohup /usr/local/nexus3/bin/nexus run 2>&1 > /dev/null &
    

    这样,即使退出SSH会话,Nexus也会继续在后台运行。

步骤三:获取默认登录密码

初次启动Nexus后,默认管理员账号admin的随机密码会被生成在指定位置。你可以通过以下命令找到初始密码:

cat /usr/local/sonatype-work/nexus3/admin.password

复制这个密码,在浏览器中访问 http://localhost:8081/ 登录Nexus Web界面,首次登录需要修改此密码。

步骤四:配置Maven仓库

登录Nexus之后,你可以在Web界面上创建新的Maven仓库,用于托管你的私有构件或代理远程仓库。具体的仓库配置请参照Nexus官方文档进行操作。

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">

    <!-- 设置本地仓库路径 -->
    <localRepository>/root/.m2/repository</localRepository>

    <!-- 代理配置,若无网络代理需求可移除整个 proxies 节点 -->
    <proxies>
        <!-- 若有代理服务器,则填写以下内容并启用 -->
        <!--
        <proxy>
            <id>optional-proxy-id</id>
            <active>true</active>
            <protocol>http</protocol>
            <host>your-proxy-host</host>
            <port>your-proxy-port</port>
            <username>proxy-username</username>
            <password>proxy-password</password>
            <nonProxyHosts>localhost|*.internal.com</nonProxyHosts>
        </proxy>
        -->
    </proxies>

    <!-- 服务器认证配置 -->
    <servers>
        <!-- Nexus 仓库发布认证 -->
        <server>
            <id>nexus-releases</id>
            <username>admin</username>
            <password>xxxxxxx</password>
        </server>
    </servers>

    <!-- 镜像设置,所有远程仓库请求都通过此镜像进行 -->
    <mirrors>
        <mirror>
            <id>nexus-mirror</id>
            <mirrorOf>*</mirrorOf>
            <name>Nexus Mirror</name>
            <url>http://xx.xx.xx.xx:8081/repository/maven-public/</url>
            <layout>default</layout>
        </mirror>
    </mirrors>

    <!-- 默认激活的 profile -->
    <profiles>
        <profile>
            <id>nexus-releases</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <repositories>
                <!-- 使用默认镜像中的中央仓库 -->
                <repository>
                    <id>central</id>
                    <url>http://xx.xx.xx.xx:8081/repository/maven-central/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <!-- 使用默认镜像中的插件仓库 -->
                <pluginRepository>
                    <id>nexus-releases</id>
                    <url>http://xx.xx.xx.xx:8081/repository/maven-central/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>

</settings>

至此,你已经在Linux系统上成功搭建了一个可供Maven使用的私有仓库。接下来,你还可以根据需求配置本地Maven设置,以便于连接到新创建的私有仓库,进行项目的部署和依赖的获取。

批量上传JAR:

https://blog.csdn.net/qq_29752857/article/details/135344860

文章来源:https://blog.csdn.net/qq_29752857/article/details/135295737
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。