资讯专栏INFORMATION COLUMN

持续集成(一):maven私服搭建

RyanHoo / 1469人阅读

摘要:公司一代新人换旧人,每次搭建项目开发环境的时候都要吐槽一下。况且咋还需要发布自己的项目到仓库,搭建私服势在必行啊。

需求扯淡

新入职一家公司,公司Java技术这块起步比较晚,没有自己成熟的框架,入职后一直忙于基础框架的搭建,框架搭建好后,领导又催着使用新框架重构现有系统,重构工作完成了差不多的时候,领导又让去做一个新系统的开发,只好使用程序员必备技能并行开发。

分析新系统的需求时,发现世界不友好了,两个项目都要依赖基础框架,但是在用户权限控制这块又有一些差别,我要是直接把框架改了又会影响到之前做好的项目,不改又满足不了新系统的要求,莫非要使用万能的复制大法,复制一份出去修改,可是这么low的方法我一向都看不上啊,真是进退两难啊。

如果我把之前的框架发布一个v1.0.0的正式版本,新的需求,在v1.0.1版本上实现,岂不是就搞定了,可是公司目前的环境支持不了这个操作啊,那就自动手动来实现了。

扯了一大堆,下面进入正题,第一步,先搭建maven本地私服,最先使用的是国外的maven仓库,项目第一次构建竟然花了1个小时,后面改用阿里的maven仓库,也没有多大的改善。公司一代新人换旧人,每次搭建项目开发环境的时候都要吐槽一下。况且咋还需要发布自己的项目到maven仓库,搭建maven私服势在必行啊。

工具准备

jdk1.8 下载地址:http://www.oracle.com/technet...

apache-maven-3.3.9 下载地址:http://maven.apache.org/downl...

nexus2.x 下载、安装、配置

在浏览器输入下载地址:https://www.sonatype.com/nexu...

点击红色框选中的按钮,选择你需要下载的版本,我下载的是2.x版本

    [root@9-VLA ~]# cd /usr/local
    [root@9-VLA local]# mkdir nexus
    [root@9-VLA local]# cd nexus
    [root@9-VLA nexus]# ls
    nexus-2.14.8-01-bundle.tar.gz
    [root@9-VLA nexus]# tar xf nexus-2.14.8-01-bundle.tar.gz 
    [root@9-VLA nexus]# ls
    nexus-2.14.8-01  nexus-2.14.8-01-bundle.tar.gz  sonatype-work
    [root@9-VLA nexus]# rm -f nexus-2.14.8-01-bundle.tar.gz 
    [root@9-VLA nexus]# ls
    nexus-2.14.8-01  sonatype-work
    [root@9-VLA nexus]# cd nexus-2.14.8-01/bin
    [root@9-VLA bin]# ls
    jsw  nexus  nexus.bat
    [root@9-VLA bin]# ./nexus
    Usage: ./nexus { console | start | stop | restart | status | dump }
    [root@9-VLA bin]# ./nexus start
    ****************************************
    WARNING - NOT RECOMMENDED TO RUN AS ROOT
    ****************************************
    If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.
    [root@9-VLA bin]# vi /etc/profile   ##在末尾添加如下:
    export RUN_AS_USER=root
    [root@9-VLA bin]# source /etc/profile
    [root@9-VLA bin]# ./nexus start
    ****************************************
    WARNING - NOT RECOMMENDED TO RUN AS ROOT
    ****************************************
    Starting Nexus OSS...
    Started Nexus OSS.
    [root@9-VLA bin]# 

浏览器输入:http://192.168.66.66:8081/nexus,界面如下,说明已经安装成功。默认端口是8081可以到conf目录下的nexus.properties文件中去修改。

右上角有一个“Log In”按钮,可以登录,默认用户名为:admin 密码:admin123,登录进去之后,可以修改密码,点击“Profile”

点击Repositories->Configuration可以看到Releases、Snapshots、3rd party、Central这四个,分别用来保存项目组内部的发布版、项目组内部的快照、第三方jar、公共jar。

设置一个用户,在maven的settings.xml中使用

Maven配置

1)修改settings.xml配置文件:

  
  
             
  
   
    
        
  
   
    
    
   
    
      
        releases  
        deployment    ##使用nexus中设置的用户名和密码
        deployment  
      
      
        snapshots  
        deployment
        deployment  
        
    
   
    
    
      nexus  
      *  
      http://192.168.66.66:8081/nexus/content/groups/public/
     
    
   
      
      
        nexus  
          
            
            nexus  
            Nexus  
            http://192.168.66.66:8081/nexus/content/groups/public/
            true  
            true  
            
          
          
            
            nexus-osc  
            Nexus osc  
            http://192.168.66.66:8081/nexus/content/groups/public/
            true  
            true  
            
          
      
       
   
    
    nexus  
    
  
   

配置好之后,maven下载jar包都会从私服下载,私服上没有就会去中央仓库下载保存到私服上。

2) 修改项目里面的pom.xml文件配置

    
          
        releases
          Nexus Release Repository
          http://192.168.66.66:8081/nexus/content/repositories/releases/    
          
          
        snapshots
        false
        Nexus Snapshot Repository
        http://192.168.66.66:8081/nexus/content/repositories/snapshots/    
          
   

这里的releasessnapshots和要Maven的settings.xml文件中的id对应起来,否则在发布的时候会报401错误

3) 发布snapshots版本和releases版本到私服上

  com.test.deploy
  deploy
  0.0.1-SNAPSHOT
  jar

发布snapshots版本,进入需要发布的maven项目的目录,运行mvn deploy命令即可.

发布releases版本,去掉pom.xml中0.0.1-SNAPSHOT的-SNAPSHOT,再运行mvn deploy命令即可。

结尾

有了自己的maven私服,总算能够暂时愉快的敲代码了,且行且珍惜呐。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69417.html

相关文章

  • hudson +gradle+git+maven(非必选)持续集成 打包自动化

    摘要:持续集成正是针对这一类问题的一种软件开发实践。持续集成的原则业界普遍认同的持续集成的原则包括需要版本控制软件保障团队成员提交的代码不会导致集成失败。 第一集 hudson+gradle+git+maven(非必选)持续集成编译,打包,发布到仓库集成 前言 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的...

    xietao3 评论0 收藏0
  • DevOps 基于Walle的小型持续集成实战()概述

    摘要:该文章用于概述一个小型持续集成环境的搭建的方案什么是持续集成持续集成作为当今软件开发实践,可以简单理解为团队开发相对频繁的集成他们的工作,一般让每个成员每天至少集成一次,而这回造成每天会有多次的版本发布。 该文章用于概述一个小型持续集成环境的搭建的方案 什么是持续集成? 持续集成作为当今软件开发实践,可以简单理解为团队开发相对频繁的集成他们的工作,一般让每个成员每天至少集成一次,而这回...

    Yangyang 评论0 收藏0
  • Maven就是这么简单

    摘要:软件项目的管理就会变得简单很多。比如说的驱动程序,,在是获取不到的,就需要手工上传到里是仓库组,在里没有这个概念,是特有的。 什么是Maven Maven是一个采用纯Java编写的开源项目管理工具, Maven采用了一种被称之为Project Object Model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中.. Maven是一款跨平台的项目...

    leonardofed 评论0 收藏0
  • Maven 实战

    摘要:的主要思想是约定优于配置。强烈建议遵循以上规范,避免不必要的麻烦。依赖传递依赖范围除了控制,还会对依赖传递产生影响。此外还提供了和来进一步管理依赖,分别称为可选依赖和排除依赖。 showImg(https://segmentfault.com/img/remote/1460000012363876?w=1240&h=698); Maven 是跨平台的项目管理工具,主要服务于基于Java...

    twohappy 评论0 收藏0
  • Maven核心概念和日常实践

    摘要:项目根目录项目名项目版本号项目目录打包的名字二依赖管理概述通过在配置依赖坐标,会自动帮我们下载依赖的构件。关于父模块的依赖配置注意两点一般都是通过来配置所有依赖及其版本号,然后子模块,在自己的文件中声明依赖即可,不用再指定版本,以确保统一。 一、Maven 1.1 为什么写Maven 工欲善其事,必先利其器。如今Java相关开发,基本离不开Maven、Gradle、MAT、Hudson...

    894974231 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<