zoukankan      html  css  js  c++  java
  • 使用Nexus搭建maven私有仓库

    Nexus 官网:http://www.sonatype.com/

    前言

    什么是maven、gradle

    Maven是一个项目管理和自动构建工具。

    Gradle是一个基于Apache AntApache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。

    为什么搭建maven私有仓库

    做java开发的童鞋对Maven一定不陌生;做android开发的童鞋,用得最多的是gradle。其实gradle的第三方库,也是放在maven仓库上。

    对于第三方库,大家基本都配置maven、gradle从远程获取,估计很少直接下载jar放在工程里(对于没有放在maven repository上的库,只能这么干)。这么做方便管理依赖

    app开发中遇到问题

    做app开发,特别是只有几万行代码量的小项目,开发团队也就几个人,通常只用一个工程玩耍。随着业务扩展,工程变得越来越大,代码量大大增加,开发人数也多了,问题开始暴漏:改动一个地方往往影响到其他人的代码,功能模块耦合严重,构建速度慢....

    业界一些解决方法:1.组件化,按功能拆分出各种组件,数据存储、网络层、日志 等;2.拆分业务,一个业务一个module;3.业务插件化,一个业务一个工程,每个业务独立编译并运行.....

    因此,引入依赖管理是必不可少的。把各个模块单独编译,部署上maven仓库,主工程or业务工程通过maven、gradle引用这些依赖。这么做还有好处,就是持续集成!某个模块修改了,跑单元测试,通过后才放上仓库。业务工程同步一下maven,万一有问题,还可以在服务端回滚到上一个版本。

    (笔者对持续集成怕有误,关于持续集成可以参考这篇文章《谈谈持续集成,持续交付,持续部署之间的区别》

    • 单独编译、单独部署
    • 灵活管理依赖
    • 便于持续集成
     

    搭建

    官方文档:https://help.sonatype.com/repomanager2/installing-and-running

    安装Java Envirment

    由于Nexus不支持OpenJDK,所以必须卸装OpenJDK并安装Oracle Java。参考 如何在Ubuntu Linux上安装Oracle Java (可能要翻墙)

    下载Nexus Repository OSS

    下载地址: http://www.sonatype.com/download-oss-sonatype

    笔者系统环境是ubuntu16.04(在windows上vmware虚拟),所以下载了Unix nexus-3.0.1版本。例如下载到$HOME下,然后解压压缩包:

    $ tar xvzf nexus-3.0.1-01-unix.tar.gz

    启动Nexus

    进入nexus根目录下的bin:

    cd ./nexus-3.0.1-01/bin

    运行Nexus:

    sudo ./nexus run

    运行成功后,会出现

    Started Sonatype Nexus OSS 3.0.1-01

     
    nexus_run

    访问nexus UI界面

    在ubuntu打开浏览器,输入http://localhost:8081/

    当然,只要知道ubuntu虚拟机内网ip,也可以在windows通过内网ip访问nexus

     
     

    配置为Linux Service

    编辑.bashrc文件(通常在用户根目录):

    gedit .bashrc

    配置$NEXUS_HOME为nexus绝对路径,在文件末尾加入:

    NEXUS_HOME="/home/{user}/nexus-3.0.1-01"

    编辑bin/nexus.rc

    run_as_user="nexus"

    /etc/init.d放nexus软连接

    sudo ln -s $NEXUS_HOME/bin/nexus /etc/init.d/nexus

    运行服务

    update-rc.d.

    cd /etc/init.d
    sudo update-rc.d nexus defaults
    sudo service nexus start

    官网有chkconfigupdate-rc.dsystemd三种方式,笔者选择最简单的update-rc.d

    (开启ubuntu第一次执行start,可能要等上几十秒才能启动)


    用户操作界面

    登陆

    假设ubuntu ip地址是192.168.86.130,浏览http://192.168.86.130:8081/打开用户界面(前面已提到)。点击右上角Sign in登陆,默认账号admin,密码admin123

     
    sign in
     
     

    登陆后:


     
     

    创建用户

    在配置页面,选择Security - User,点击create user

     
    create user.png

    填写用户信息,再点击最底下的create user即可创建用户

     
    user info
     
     

    创建xiaoming用户后,可以Sign out,用xiaoming账号登陆了。

    创建maven仓库

    在配置界面,选择Repository - repositories,图中红色选线框着的是默认仓库。点击create repository

     
    repositories
     
    create repository

    这里简单介绍下几种repository的类型:

    • hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。
    • proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
    • group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。

    我们的目的仅仅管理自己开发的组件,选择host即可。

    填写仓库配置

     
     

    version policy,可以选Release或Snapshot,如果仓库开放给所有人,那选Release比较好,如果公司内部或自己用,其中一个就可以。

    仓库xiaoming-host创建完毕

     
    xiaoming-host

    查看仓库的项目

    如果上传了项目,在Nexus用户界面,选择components -> xiaoming-host

     
    deploy success

    小结

    google一下“Nexus搭建”,很多文章都是基于2.x版本,3.x安装教程相对少一些,笔者因为找不到很好的文章,才决定自己写一篇。官方文档还是挺容易理解的,步骤也很清晰,建议大家在搭建过程不懂时,查阅官方文档。



  • 相关阅读:
    2019 上海网络赛 J stone name (01背包)
    CodeForces
    2019 年百度之星·程序设计大赛
    CodeForces
    POJ 3728 The merchant (树形DP+LCA)
    HihoCoder
    HihoCoder 1055 刷油漆 (树上背包)
    HI3518E平台ISP调试环境搭建
    有用的调节
    【HI3520DV200】sample
  • 原文地址:https://www.cnblogs.com/qingmuchuanqi48/p/13833357.html
Copyright © 2011-2022 走看看