Linux学习笔记32——linux上搭建持续集成环境之maven及nexus仓库

linux搭建jenkins

  • 一、什么是持续集成
    • 这个做法有如下好处:
    • 整体流程:
    • 重要组成部分
  • 二、安装jdk及maven
    • 1,安装jdk
    • 2,安装maven
  • 三、安装Maven私服Nexus
    • 1,下载及解压
    • 2,配置端口、启动服务
  • 四、Nexus的使用
    • 1,目录结构
    • 2,仓库的新建
    • 3,配置maven
    • 4,修改仓库的代理设置
    • 5,修改pom设置
    • 6,上传jar包

一、什么是持续集成

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而今早地发现地发现集成的错误。

这个做法有如下好处:

(1)节省人力成本;
(2)加快软件开发速度;
(3)实时交付。

整体流程:

成员通过git提交代码到gitlab——>持续集成引擎拉取代码,使用构建工具自动构建——>发布构造后之后的中药组成部分

重要组成部分

git
gitlab
jenkins 持续集成引擎
maven 构建工具
sonarqube 代码质量管理
Junit 执行单元测试
JDK java的开发工具
Tomcat 服务器

因此,持续集成实际上是一套体系。

为啥会用到jenkins?
原本就是几个war包发布到服务器就可以了——>微服务架构,如果单纯通过手工发布,是很危险的!因此需要用到jenkins

二、安装jdk及maven

1,安装jdk

像jdk及tomcat,一般安装到/usr/local这个目录下。
因为jdk在服务器上已经安装了,过程大概是:
解压tar.gz到/ust/local
之后,vim /etc/profile
配置上JAVA_HOME、JRE_HOME、CLASSPATH,并将java的bin目录放置到path中。
记得source /ect/profile
souce 很像 ./ 实际上就是指在当前bash环境下读取并执行FileName中的命令。

2,安装maven

下载一个最新版本的maven:apache-maven-3.6.0-bin.tar.gz
用 tar -zxvf apache-maven-3.6.0-bin.tar.gz -C /usr/local
顺便来复习下tar命令:
z表示解压gz,x解压tar,v显示处理文件,f后接文件,C接解压目录。
复制maven的路径:
/usr/local/apache-maven-3.6.0
在/etc/profile中加入这一句:
export PATH= M A V E N H O M E : MAVEN_HOME: MAVENHOME:PATH
输入:
mvn --help
有提示命令就安装完成了。

三、安装Maven私服Nexus

1,下载及解压

下载地址:
https://www.sonatype.com/download-oss-sonatype
然后选择unix版的仓库。
Linux学习笔记32——linux上搭建持续集成环境之maven及nexus仓库_第1张图片

下载好了就有这个文件了:
nexus-3.14.0-04-unix.tar.gz
之后进行上传、解压
和之前的tar操作一样
之后如果要修改端口号:
在/usr/local/etc,

2,配置端口、启动服务

vim /usr/local/nexus-3.14.0-04/etc/nexus-default.properties

在这里有一段:
在这里插入图片描述
这个port就是端口号,是可以修改的,服务器是没有用到8081的,所以可以使用这个。
当然,要用这个端口,老规矩,要把防火墙给开了:
vim /etc/sysconfig/iptables
加入一行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT
之后重启防火墙
service iptables restart
总之企业的版本是偏老的,用service总之是可以用的
启动这个服务:
./nexus start
有个提示:
Detected execution as “root” user. This is NOT recommended!
就是说不建议用root执行咯,我们kill掉这个进程:
查找进程
ps aux | grep nexus
找到那个进程,杀掉:
kill 11063
之后用普通账户启动就好了。

用普通用户启动:
./nexus start
但是进程里却查不到:
ps aux | grep nexut
这时候我们用:
./nexus run
就可以看到提示信息:
Unable to delete file: /usr/local/sonatype-work/nexus3/cache/bundle129/bundle.info
Unable to update instance pid: /usr/local/sonatype-work/nexus3/instances/instance.properties (权限不够)

ok,我们根据查找到的目录知道要更改两个目录的权限:
chown -R XXX:XXX nexus-3.14.0-04/ sonatype-work/

浏览器打开并登陆(ip写这个服务器的)
http://192.168.56.102:8081/
账号admin
密码 admin123
System Requirement: max file descriptors [4096] likely too low, increase to at least [65536].

修改ulimit
vim /etc/security/limits.conf
新增
* soft nofile 65535
* hard nofile 65535
之后设置自动启动:
su - nexus -c ‘/usr/local/nexus-3.12.1-01/bin/nexus start’

四、Nexus的使用

1,目录结构

Linux学习笔记32——linux上搭建持续集成环境之maven及nexus仓库_第2张图片

我们关注的主要就是maven的这些部分,这个proxy是代理仓库的意思。我们来看一下maven调用的过程。首先它会在本地找maven仓库,然后如果在本地找不到仓库,则会去远程仓库找。这个proxy相当于代理去远程找仓库。group则相当于把其他仓库分成一个组的概念
Linux学习笔记32——linux上搭建持续集成环境之maven及nexus仓库_第3张图片

2,仓库的新建

如果要新建仓库,在如下界面操作:
Linux学习笔记32——linux上搭建持续集成环境之maven及nexus仓库_第4张图片
新建一个maven-hosted仓库:
在这里插入图片描述
Linux学习笔记32——linux上搭建持续集成环境之maven及nexus仓库_第5张图片

新建:
在这里插入图片描述
然后我们把这个仓库加入到group:
在这里插入图片描述
Linux学习笔记32——linux上搭建持续集成环境之maven及nexus仓库_第6张图片

3,配置maven

如何配置呢,首先找到maven下的conf目录里的setting.xml:
在server这里:
Linux学习笔记32——linux上搭建持续集成环境之maven及nexus仓库_第7张图片
加上这一段,当然这是测试,实际环境当然不能给别人admin权限
Linux学习笔记32——linux上搭建持续集成环境之maven及nexus仓库_第8张图片
然后再配以一个snapshots
Linux学习笔记32——linux上搭建持续集成环境之maven及nexus仓库_第9张图片

之后我们要在profile中配置私有库的地址,即这个仓库的地址:
在这里插入图片描述
同样,插件库的地址也是指向这个maven-public。
xml的设置最终是这个样子(当然为什么这么配,也是参考的,以后再来解析解析maven的配置文件):



  
  
  
    
      xdclass-releases
      admin
      admin123
    
    
      xdclass-snapshots
      admin
      admin123
    
  
  
  
    
      xdclass
      
        false
      
      
      
        
          xdclass
          http://192.168.56.101:8081/repository/maven-public/
          
            true
          
          
            true
          
        
      
      
      
        
          xdclass
          http://192.168.56.101:8081/repository/maven-public/
          
            true
          
          
            true
          
        
      
    
  
  
    xdclass
  

4,修改仓库的代理设置

Linux学习笔记32——linux上搭建持续集成环境之maven及nexus仓库_第10张图片
这个地址改成阿里云的地址:
http://maven.aliyun.com/nexus/content/groups/public/
不过在内网这个设置也没什么用,还是要靠自己push上去

5,修改pom设置

maven项目中则要修改pom设置:

  
  
        
            xdclass-releases
            Ruizhi Release Repository
            http://192.168.56.101:8081/repository/maven-releases/
        

        
            xdclass-snapshots
            Ruizhi Snapshot Repository
            http://192.168.56.101:8081/repository/maven-snapshots/
        
    

6,上传jar包

ok,讲完怎么用nexus,我们也要提供一些原材料不是。尤其是内网,不上传jar,它从哪里来提供依赖?
在这里插入图片描述
点这里就好,然后上传jar包:
Linux学习笔记32——linux上搭建持续集成环境之maven及nexus仓库_第11张图片
然后呢,就能在仓库中看到这个jar包了:
Linux学习笔记32——linux上搭建持续集成环境之maven及nexus仓库_第12张图片

你可能感兴趣的:(linux)