Maven服务器搭建

时间:2022-05-06 11:05:37

Nexus服务器软件安装和配置

目前比较流行的使用nexus搭建maven私有服务器,其实很简单,它就是一个web系统,从官方下载的包默认内嵌了jetty容器,所以需要提前安装好JVM,并配置好环境变量,接下来只需要简单配置并运行即可。

本文参考的博客:http://www.361way.com/nexus-maven-private-warehouse/3108.html

  • 官方下载Nexus oos版本:https://www.sonatype.com/download-oss-sonatype

  • 安装下载后解压,有2个目录:nexus-3.4.0-02 sonatype-work

    nexus-3.4.0-02 -> bin目录有3个文件nexus(执行程序)、nexus.rc(配置文件,配置运行nexus的用户)、nexus.vmproperties(配置文件,配置nexus运行JVM虚拟机参数)
    只需要设置nexus.rc中为:run_as_user="lkqm", 注意nexus基于安全考虑lkqm不能是root。

  • 启动停止
    bin目录下执行: nexus start启动,nexus status查看运行状态, nexus run运行并打印结果会占用终端,nexus stop停止。

注:Nexus3版本以上需要jdk1.8版本。linux安装nexus运行需要操作sonatype-work目录下文件,所以保证run_as_user指定的用户对整个目录有读写权限。

linux下安装命令参考:

cd ~/donwload

# 解压到指定目录
sudo mkdir /usr/local/nexus
suod tar xzvf nexus-3.4.0-02-unix.tar.gz -C /usr/local/nexus

# 修改nexus目录的权限
cd /usr/local/nexus
sudo chown -R lkqm .

# 修改配置文件nexus.rc
# 运行
cd nexus-3.4.0-02/bin
./nexus start

进入WEB管理端,配置仓库

浏览器中访问192.168.0.1:8081, 未登录状态,只能查看服务器端哪些仓库,以及有那些包(jar), 左侧树形菜单brow点击可以查看。

Maven服务器搭建

点击右上角登录后进入配置界面,默认的管理员账户:admin, 密码admin123,左侧树形菜单:repository,进入仓库配置(CRUD)。

Maven服务器搭建

仓库分为3种:

  1. proxy 代理,作用就是代理其他maven仓库
  2. hosted 主机,作用是保存自己团队上传的组件(jar包)
  3. group 组,作用是结果上面两种的仓库,提供统一的包下载访问路径。

到此服务端,配置完毕。

注:默认提供了多个仓库,可以参照配置。

配置maven的setting.xml文件

为了让maven项目,从私有服务器下载组建(jar包),需要在maven的配置文件setting.xml -> mirrors添加mirror元素:

<mirror>
<id>lkqm</id>
<mirrorOf>central</mirrorOf>
<name>My Server Maven.</name>
<url>http://localhost:8081/repository/maven-public/</url>
</mirror>

url标签的值,通常指向group类型的仓库,这样我们就可以下载共有的和私有的组件(jar包)。

上传本地项目到服务器

我们需要将自己的组件(jar包)上传到私有的maven服务器中,需要在指定项目的pom.xml中,添加如下配置,然后执行maven命令deploy即可将项目打包上传到服务器:

    <!-- 构建分发管理:本地构建上传到私有服务器 -->
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://localhost:8081/repository/maven-release/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://localhost:8081/repository/maven-snapshot/</url>
</snapshotRepository>
</distributionManagement>

url标签的值,指向hosted类型的仓库,用于上传私有的组件(jar包)。

由于仓库需要账户密码访问,因此根据上面配置的id的值,去maven配置文件setting.xml -> servers节点中查找,内容如下:

<servers>
<server>
<id>nexus-release</id>
<username>admin</username>
<password>199528</password>
</server>

<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>199528</password>
</server>
</servers>