jenkins持续集成从0入门到实战【三】集成Git和Maven

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Maven是目前主流的自动化构建工具,而Git也是目前主流的分布式版本控制系统。要做Java项目的持续集成必须会集成这2个工具。

集成Git

为了jenkins能够拉取代码,需要安装Git环境和jenkins对应的Git插件

  1. CentOS 7上安装Git环境

    # 安装
    $ yum install git -y
    # 查看版本
    $ git --version
  2. jenkins安装Git插件

    image.png

  3. jenkins配置Git环境

    此处无需在jenkins中配置Git环境,采用默认生成的即可

    image.png

  4. Gitee码云对接

    • 添加凭据
      Jenkins->系统管理->系统->全局凭证->添加凭证

      image.png

      image.png

    • Gitee上任意建一个仓库

      image.png
      image.png

    • 测试凭据是否能够使用

      jenkins-》新建任务-》自由风格项目

      image.png

      image.png

      image.png

      image.png

      image.png

      image.png

      image.png

      进入jenkins的工作空间查看文件是否拉取下来,所有拉取的文件都会存放在jenkins工作空间中

      # 进入到工作空间查看
      $ cd /home/jenkins/.jenkins/workspace/
      $ ll
      drwxr-xr-x. 3 jenkins ci 73 Sep 20 01:14 gitee-test-password
      drwxr-xr-x. 2 jenkins ci  6 Sep 20 01:14 gitee-test-password@tmp
      
      $ cd gitee-test-password
      $ ll
      -rw-r--r--. 1 jenkins ci 829 Sep 20 01:14 README.en.md
      -rw-r--r--. 1 jenkins ci 918 Sep 20 01:14 README.md
      
      $ cat README.md

      image.png

    • 到此用户名密码方式的凭证已经打通Git
  5. 阿里云codeup对接
  6. github对接
    问题回答:fatal: unable to access 'https://gitee.com/nobug8/jenkins-maven-test.git/': Could not resolve host: gitee.com; Unknown error 报错,如果凭证没问题仍然出现该错误,可以尝试一下方案:

    vim /etc/resolv.conf
    # 在最后一行增加nameserver 8.8.8.8或者nameserver 114.114.114.114即可。

集成Maven

jenkins上发布Java项目时需要使用Maven来进行构建打包(Gradle项目则需要安装配置Gradle)

  1. 下载安装

    # 切换到root用户
    $ su root
    Password:
    
    # 找一个目录存放maven
    $ cd /usr/local/java/
    
    # 从阿里云上下载maven安装包
    $ wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
    
    # 解压
    $ tar -zxvf apache-maven-3.6.3-bin.tar.gz
    
    # 当前maven的安装目录为:/usr/local/java/apache-maven-3.6.3
  2. 环境配置

    $ vim /etc/profile
    
    在最后面JDK配置上作出一些更改
    export MAVEN_HOME=/usr/local/java/apache-maven-3.6.3
    export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
  3. 使配置生效并查看安装情况

    $ souce /etc/profile
    $ mvn -version

    image.png

  4. jenkins配置Maven

    image.png
    安装Maven插件

    image.png

  5. 使用jenkins用户在/data/software目录下新建一个repository文件夹,用来作为maven的仓库

    $ cd /data/software
    $ mkdir repository
  6. 使用root账户修改Maven的settings.xml文件(指定仓库目录和阿里云镜像)

    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
      
      <!--本地仓库-->          
      <localRepository>/data/software/repository</localRepository>
      
      <mirrors>
        <!--阿里云镜像-->
        <mirror>
          <id>aliyun-maven</id>
          <mirrorOf>central</mirrorOf>
          <name>aliyun maven mirror</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </mirror>
      </mirrors>
        ...
        ...
    </settings>
  7. jenkins配置settings.xml文件
  8. Maven测试项目构建

    接下来的步骤是将java项目传到Gitee上供jenkins拉取打包,如果运维同学不懂Java代码,可以直接将我的Git项目fork或采用gitlab 等其他方式进行拉取。

    • 新建Maven项目

      image.png

      image.png

      image.png

    • 在码云上建一个同名的git项目

      image.png

      image.png

      image.png

    • 使用Git上传到码云

      使用git bash命令将项目初始化,无论是传到Gitee、GitHub、GitLab、Codeup步骤一样。

      # 进入到本地的项目文件夹
      $ cd existing_folder
      # 初始化仓库
      $ git init
      
      # 添加文件至工作区并提交
      $ git add .
      $ git commit -m "first commit"
      
      # 关联Gitee远程仓库
      $ git remote add origin https://gitee.com/nobug8/it235-jenkins-jar.git
      
      # 将本地仓库推送到远程仓库的master分支,此处会弹出用户名密码交互
      $ git push -u origin master
      
      ## 如果push报错可以先拉取一下,会有新的gitee生成的文件拉下来,然后重新添加提交并push
      $ git pull origin master --allow-unrelated-histories
      $ git add .
      $ git commit -m "拉取下来合并后再次提交"
      $ git push -u origin master

      image.png

  9. jenkins添加Maven项目任务

    • 新建任务

      image.png

    • 编写描述

      image.png

    • 连接Git仓库

      image.png

    • 编写Maven编译命令

      image.png

    • 构建并查看控制台日志

      保存后,点击立即构建,然后进入日志控制台查看日志

      image.png

      从日志可以看到代码已经在拉取了,而且走的事阿里云仓库,第一次拉取过程会比较长。

      通过查看/data/software/repository可以看到有存放拉取的jar包,通过这2个证据可以证明settings.xml文件配置成功且有效

      image.png

    • 构建成功后查看jenkinsworkspace目录下的jar包

      image.png

      image.png

总结

通过对Maven和Git的集成,我们的jenkins已经具备基本的构建Java项目的能力,下一篇我们来走一个SpringBoot项目构建发布的流程

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
2月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
81 0
|
2月前
|
Linux 开发工具 git
企业级Git管理工作流分析--GIT实战详解
企业级Git管理工作流分析--GIT实战详解
51 0
|
2月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
232 0
|
4月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
99 1
|
3月前
|
jenkins 持续交付 网络安全
利用 Jenkins 实现持续集成与持续部署-代码拉取终端的配置
安装Git、配置用户信息、生成SSH密钥以及在Gitee上创建项目仓库等。
89 0
|
4月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
91 0
|
4月前
|
Kubernetes jenkins 持续交付
Jenkins 与 Kubernetes 的集成:实现高效的资源管理和自动化部署
【8月更文第31天】随着微服务架构的普及,Kubernetes 已经成为了容器编排的事实标准。Kubernetes 提供了一种强大的方式来管理容器化的应用程序,而 Jenkins 则是持续集成与持续部署(CI/CD)领域的一个重要工具。将 Jenkins 与 Kubernetes 集成,不仅可以充分利用 Kubernetes 的资源管理能力,还能通过 Jenkins 实现自动化构建、测试和部署,从而提高开发效率和部署速度。本文将详细介绍如何将 Jenkins 集成到 Kubernetes 环境中,并提供具体的代码示例。
507 0
|
4月前
|
jenkins 持续交付 开发工具
Jenkins 与 Docker 集成的最佳实践
【8月更文第31天】随着容器技术的兴起,越来越多的团队开始采用 Docker 来构建和部署应用。Docker 提供了一种轻量级的虚拟化方法,使得应用可以在任何地方以相同的方式运行,这极大地提高了开发效率和部署的一致性。与此同时,Jenkins 作为一种广泛使用的持续集成/持续交付(CI/CD)工具,可以帮助团队自动化构建、测试和部署流程。本文将探讨如何将 Docker 与 Jenkins 集成,以简化开发环境的搭建和维护。
392 0
|
4月前
|
jenkins Java 测试技术
Jenkins 在持续集成/持续交付(CI/CD)管道中的应用
【8月更文第31天】 在现代软件开发过程中,持续集成(Continuous Integration, CI)和持续交付(Continuous Delivery, CD)已经成为提升开发效率和软件质量的重要实践。Jenkins 是一个广泛使用的开源工具,它能够帮助团队实现自动化构建、测试和部署,是 CI/CD 流水线的核心组件之一。本文将详细介绍 Jenkins 在 CI/CD 管道中的应用,并提供具体的代码示例。
224 0