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

简介: 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项目构建发布的流程

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
XML 前端开发 Java
SpringMVC入门到实战------2、SpringMVC创建实例Hello SpringMVC(maven+tomcat)
这篇文章是SpringMVC框架的入门教程,详细指导了如何在IDEA中使用Maven和Tomcat创建SpringMVC工程,包括添加依赖、配置web.xml、编写控制器、创建配置文件、配置Tomcat服务器以及进行基本的测试,展示了一个简单的Hello SpringMVC示例。
SpringMVC入门到实战------2、SpringMVC创建实例Hello SpringMVC(maven+tomcat)
|
9月前
|
缓存 监控 安全
电商API集成入门:从零开始搭建高效接口
在数字化电商时代,API集成成为企业提升效率、实现系统互联的关键。本文从零开始,逐步讲解如何搭建高效、可靠的电商API接口,适合初学者学习。内容涵盖API基础、认证安全、请求处理、性能优化等核心步骤,并提供Python代码示例与数学公式辅助理解。通过实践,读者可掌握构建优质电商API的技巧,提升用户体验与系统性能。
382 0
|
人工智能 API 开发工具
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
GitHub MCP Server是基于Model Context Protocol的服务器工具,提供与GitHub API的无缝集成,支持自动化处理问题、Pull Request和仓库管理等功能。
2500 2
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
|
缓存 架构师 Java
Maven实战进阶(01)面试官:Maven怎么解决依赖冲突?| 有几种解决方式
本文介绍了Maven的核心功能和依赖管理技巧。Maven是基于项目对象模型(POM)的构建工具,具备跨平台、标准化、自动化等特性。其三大核心功能为依赖管理、仓库管理和项目构建。依赖管理通过pom.xml文件引入第三方组件并自动下载;仓库管理涉及中央仓库、私服和本地仓库;项目构建则通过生命周期管理编译、测试、打包等流程。文章还详细讲解了依赖冲突的解决方法,包括默认规则、手工排除和版本指定等策略。
|
存储 Java Linux
【Maven】——基础入门,插件安装、配置和简单使用,Maven如何设置国内源
Maven插件安装,Maven项目构建,依赖管理,Haven Help插件,Maven仓库,Maven如何设置国内源
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
450 3
|
移动开发 jenkins 持续交付
jenkins配置git
通过上述步骤,您可以在 Jenkins 中成功配置 Git,从而实现自动拉取代码并进行构建和部署。这些配置不仅提高了开发效率,还保证了代码的连续集成和交付。确保每一步配置正确,以避免在实际使用中遇到问题。
1799 1
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
486 0
|
监控 Devops 测试技术
DevOps实践: 持续集成和持续部署(CI/CD)的入门指南
【9月更文挑战第10天】在快速迭代的软件开发世界中,DevOps已经成为加速产品交付、提升软件质量和团队协作的关键策略。本文将深入浅出地介绍DevOps的核心组成部分——持续集成(Continuous Integration, CI)与持续部署(Continuous Deployment, CD)的基本概念、实施步骤以及它们如何革新传统的软件开发流程。你将学习到如何通过自动化工具简化开发流程,并理解为什么CI/CD是现代软件开发不可或缺的一环。
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
984 0