构建基于Jenkins+Git+Grails持续集成环境

Jenkins + Groovy脚本 = 高效✔✔ (纯干货) 目录一、IntelliJ IDEA中配置Groovy二、Pipeline中使用Groovy脚本1. 使用默认jdk提供的方法2. 使用三方库中的方法三、使用Shared Libraries复用代码四、脚本安全性检查1. 不进行groovy沙箱检查2. 在共享库总声明具体类型五、Piepline中自定义函数参数传递六、最佳实践总结 一、IntelliJ IDEA中配置Groovy 我们写在Jenkinsfile中写脚本的模式是, 先在IDE中验证脚本, 然后复制代码至Jenkinsfile, 关于在Inte 阅读详情


正文: 

Jenkins是一款Java平台的开源持续集成(Continuous Integration,CI)引擎。它易于安装,配置简单,丰富的插件支持,高度的可扩展性,强大的分布式构建能力都让它在众多的CI引擎中脱颖而出。在这篇文章里我将带领大家一起搭建基于jenkins,git和grails的持续集成环境。

Jenkins安装

进入jenkins官方网站下载最新的jenkins。jenkins提供的war形式的下载,同时也提供各种操作系统的安装文件。本文选用的是war包。

将jenkins.war拷贝到tomcat_home的webapps目录下,启动tomcat。在浏览器的地址栏中输入http://localhost:8080/jenkins,回车。看到如下页面,说明jenkins已经部署成功了。

插件安装

Jenkins缺省支持CVS,Subversion,Maven和SSH。依次进入"系统管理"-->"插件管理"-->"可选插件".这里列出了目前可以获得的所有的插件。

 选择"Git plugin"和"Grails plugin",点击"安装"。

插件安装已经完成,我们需要重启tomcat,新插件才能生效。

环境配置

依次进入"系统管理"-->"系统设置",设置Jenkins相关参数。

插件的参数配置也在这里设置。下面是Git和Grails插件的配置。



创建构建任务

接下来,我们进入最关键的环节:创建构建任务。点击"新建任务"。

输入"任务名称",选择"构建一个自由风格的软件项目",点击"OK"。系统自动进入"任务配置"界面。

首先我们来配置git版本库。在"Source Code Management"下,选择"Git",输入版本库的URL和分支,本人使用的版本库在本地,你也可以使用远程的版本库。

接下来配置构建触发器。如图:

"Poll SCM"用来定期检查版本库是否有更新,如果有更新,触发构建。"*/5 * * * *"表示每隔5分钟检查一次。点击Schedule后面的问号,Jenkins将显示Schedule的帮助信息。

构建触发器定义了"何时构建",下来我们来看看"如何构建".

如图点击"Add build step",在这里我们选择"Build With Grails".下方自动显示Grails相关的配置:

"Target"为需要执行grails命令。命令之间以"空格"隔开;如果命令带有参数,使用"双引号"包围,如:clean "test-app -unit"。"Project Base Directory"是Grails工程的根目录。如果工作目录就是Grails工程的根目录则不需要配置。

至此构建相关的配置已经完成,你可以尝试自己的第一次构建了。

发布Junit测试报告

Jenkins允许发布Junit测试报告,只需指定Junit测试报告的XML路径即可。Jenkins将解析XML生成测试报告。配置如图所示:

查看测试报告:

这里有一个Jenkins的Bug,每一个测试会被出现两条相同的记录。

构建结果通知

虽然我们已经将构建配置好了,但是如何将构建的结果通知给相关的人员呢?邮件通知是最常采用的一种方式。

邮件通知需要配置两个地方,首先进入"系统管理"-->"系统设置"设置全局参数,如图所示。

设置完成后,可以点击"用系统管理员测试邮件配置"按钮进行测试。

接下来是针对每个任务的配置。进入任务,点击"设置"。

这里主要配置当任务构建失败,或者变为不稳定状态,或回到稳定状态的时候将邮件发送给哪些人员。至于邮件的内容由Jenkins自动生成。如果你想自定义邮件内容,你可以安装Email-ext插件。

除了邮件通知,你还可以通过订阅RSS来了解任务的构建情况。

其他功能

  1. 在线查看工作空间:
  2. 查看版本库变更:
  3. 查看Git Poll日志:
  4. 查看构建的命令行输出:

问题和解决办法

  1. 使用grails进行构建的时候报"Could not load Logmanager org.apache.juli.ClassLoaderLogManager"的异常:

     [testWebProject] $ cmd.exe /C grails.bat clean && exit %%ERRORLEVEL%% Could not load Logmanager "org.apache.juli.ClassLoaderLogManager" java.lang.ClassNotFoundException: org.apache.juli.ClassLoaderLogManager at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128) ...... 

    这是由于tomcat启动时JAVA_OPTS中将log管理类设置成了org.apache.juli.ClassLoaderLogManager。执行"grails.bat clean && exit"命令时,grails找不到org.apache.juli.ClassLoaderLogManager。打开tomcat_home下的catalina.bat将下面命令注释掉即可。

     set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"

Jenkins基础教程(78)Jenkins用Grails 构建项目:深度解析:Jenkins如何“撩上”Grails,自动化构建项目如此简单! 本文深入讲解如何使用Jenkins构建Grails项目,涵盖环境配置、插件安装、构建任务创建及测试报告发布等全流程。通过完整示例演示从源码拉取到构建通知的详细步骤,并提供常见问题解决方案和最佳实践,帮助开发者轻松搭建高效自动化构建流水线,提升开发效率与代码质量。 阅读详情

相关推荐

持续集成环境选择:Jenkins VS gitlab-ci

JenkinsJenkins作为老牌的持续集成框架,在这么多年的发展中,积累很多优秀的plugin工具,对进行持续集成工作带来很大的便利。gitlab-cigitlab-ci作为gitlab提供的一个持续集成的套件,完美和gitlab进行集成,gitlab-ci已经集成进gitlab服务器中,在使用的时候只需要安装配置gitlab-runner即可。 gitlab-runner基本上提供了一个可以

xinluke的专栏 2万+

[转载]构建基于Jenkins(原Hodson)+Git+Grails持续集成环境

原文出自:http://groovyq.net/content/构建基于JenkinsGitGrails持续集成环境 构建基于Jenkins+Git+Grails持续集成环境 由 bugu66 于 四, 06/16/2011 - 15:43 发表  Grails   原创 Jenkins是一款Java平台的开源持续集成(Continuous In...

flashcloud 212

AI赚钱新思路 利用RPA+KIMI实现小红书全自动制作发布(详细攻略)

我已经事先准备好了文案素材,现在就利用Kimi的智能,根据我们已有的文案来创作出新的文案吧。之前我写过一篇关于【:一个戴着用百元大钞制成的简约头饰的少女,她坐在小车里,手里拿着一叠港元,整个画面洋溢着现实主义动漫风格和治愈系的温暖气息。通过这篇文章,我们已经一步步地完成了小红书治愈系文案的创作、治愈系图片的生成,以及笔记的发布,实现了整个流程的自动化。不慌不忙,快乐常在 在繁忙的日常中,给自己的心灵留一片净土,感受内心深处的平静与安宁。接下来,我将展示如何使用影刀来编写自动化脚本,以生成治愈系的图文图片。

weixin_42172073的博客 3692

借助Jenkins实现项目打包和部署

一、打包 1.Java项目打包可以结束 Jenkins工具,打包流程如下 借助 Maven_Build 选择项目和分值,点击开始构建,等待左侧构建进度完成后打包即可完成 点击构建历史,可以在控制台输出查看详细构建信息。 2.还可以使用IntelliJ IDEA借助Maven来打包 Terminal终端输入打包命令:mvn package,打包完成后即可在主目录target下看到打成的jar包。 二、部署 Java项目部署在Linux服务器上,我们需要在控制台下进入到部署目录.

AndroidOrCsharp 7116

ubuntu虚拟机搭建OP-TEE

在网上找了一些搭建OP-TEE的过程,模仿着进行搭建,结果有好多报错,为了方便自己以后重新搭建,所以将整个过程记录下来。

weixin_44213847的博客 1001

Keil开发中CMSIS Driver API缺失问题的排查与解决

本文详细解析Keil开发中CMSIS Driver API缺失问题的根源与解决方案。针对版本不匹配、安装不完整等常见原因,提供在线与离线安装的对比及详细排查步骤,重点涵盖版本兼容性分析与项目配置验证,帮助开发者彻底解决API缺失错误并预防问题复发。

rust6ferris的博客 551

常用的grails插件

wkhtmltopdf:http://grails.org/plugin/wkhtmltopdf将url转换为pdf文件remote-ssh远程ssh:http://grails.org/plugin/remote-ssh 转载于:https://blog.51cto.com/xiaosa/1430499

weixin_34376562的博客 359

Windows 10下用vcpkg一键搞定libcurl开发环境(Code::Blocks 20.03配置指南)

本文详细介绍了在Windows 10系统下使用vcpkg工具快速配置libcurl开发环境的完整指南,特别针对Code::Blocks 20.03 IDE进行优化设置。通过vcpkg自动化管理依赖项,简化libcurl的安装与配置过程,帮助开发者高效搭建网络通信功能开发环境,并提供了常见问题解决方案和实际项目中的最佳实践。

weixin_28040125的博客 250

python自动化(六)持续集成:2.Jenkins技术讲解

一.程序集成体系介绍 1.瀑布模型和敏捷模型 瀑布模型:在之前我们项目的开发模式都是瀑布模式。项目生命周期按照需求分析>概要设计>详细设计>代码开发>测试>上线发布一步一步进行。这种模式文档完善,整个开发过程很严谨,相对比较可控。 敏捷模式:敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也

ouyicnm的博客 2456

《第二十二篇》Cross-Attention:注意力机制详解-代码实现和公式详解《二》

本文详细介绍了Cross-Attention的原理、公式和实现。Cross-Attention用于Transformer解码器和Encoder-Decoder结构,通过查询向量(Q)与键、值向量(K、V)的交互实现序列对齐。核心公式为softmax(QK^T/√d_k)V,其中Q来自Decoder,K、V来自Encoder。文章还给出了多头注意力机制公式和PyTorch实现代码,包括投影计算、注意力分数计算和输出处理。代码示例展示了如何构建一个完整的Cross-Attention模块,并演示了其在解码器查询

guoguozgw的博客 2212

让 ME51N 在采购信息记录过期时不要带出上一次采购订单的价格

在采购信息记录(PIR)价格条件无效或过期时,到上一次采购订单价格进行提议;你可以通过关闭,并在把PO price设置为不采纳,再辅以把过期的价格来源直接拦截为错误。若仍需 100% 阻断,可用在保存前清空估价价格作为技术兜底。标准行为与配置证据见文内引用。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 661

Jenkins Blue Ocean 流水线实战:5个阶段构建Gitea前端项目,优化构建速度30%

本文详细介绍了如何使用Jenkins Blue Ocean构建Gitea前端项目的五阶段流水线,并优化构建速度30%。通过环境准备、流水线架构设计、构建速度优化方案及Blue Ocean实战技巧,帮助开发者实现高效的自动化部署,提升CI/CD流程的效率和可靠性。

weixin_33739541的博客 417

AI辅助需求分析与提示词生成

文章标题 《AI辅助需求分析与提示词生成》 关键词 人工智能 需求分析 提示词生成 深度学习 机器学习 强化学习 数学模型 系统架构

AI天才研究院 1214

whirlpool的环境配置

为了跑openboxes,搭建了whirlpool的环境花了3天左右时间,将openboxes从grails 1.3.7版本升级到2.3.4版本,编译可以通过,还不能保证运行通过配置whirlpool环境grails 2.3.4tomcatmysqljdksendmailjenkinsgit尤其是jenkins和bitbucket整合耗了半天多的时间 转载于:htt...

weixin_34061042的博客 135

数字 IC 笔试面试必考点(1)FPGA 芯片架构

FPGA 芯片架构是非常重要的,如果你不了解 FPGA 芯片内部的详细架构,那么...

新芯设计的博客 2809

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Maven镜像配置全解析:原理、国内镜像源对比与多环境实战指南

在Java项目构建中,依赖管理是核心环节,Maven作为主流构建工具,其仓库机制负责从远程服务器下载和管理项目所需的库文件。其工作原理是通过解析pom.xml文件中的依赖声明,从配置的仓库地址获取构件。为了提升下载速度与稳定性,特别是在网络环境复杂的情况下,**仓库镜像**技术应运而生,它通过在国内部署缓存节点,将远程仓库的请求重定向到本地或更近的服务器,从而显著加速依赖解析和下载过程,这对于提升研发效率和保障构建流程的可靠性具有重要价值。常见的应用场景包括个人开发环境配置、团队协作统一以及持续集成流水线的

weixin_30407613的博客 414

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Spring Boot CLI 入门:用 Groovy 快速启动 Spring 应用

Spring Boot CLI 是 Spring 官方提供的命令行开发工具,基于 Groovy 脚本实现零配置快速启动,其核心原理是利用 Groovy 的 AST 变换能力与依赖自动推导机制,在编译期动态注入 Spring 启动逻辑并解析 import 语句以加载对应 Starter。该工具显著提升原型验证、CI/CD 脚本及临时服务的开发效率,技术价值在于将传统 Maven 项目初始化(5 分钟)压缩至秒级运行,适用于微服务 PoC、运维自动化和架构演示等轻量高频场景。本文聚焦 Spring Boot C

weixin_34290096的博客 367

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

grails部署开发

1  启动IntelliJ IDEA时候,如果出现: SEVERE: Problems copying method. Incompatible JVM? java.lang.reflect.InvocationTargetException         at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source),则

zyzn1425077119的博客 1988

在Jenkins pipeline中执行groovy脚本

最近又get到一个技能,通过在Jenkins pipeline中使用groovy脚本来完成一些功能。 创建Jenkinsjob: 1. New Item -> 选择 'Pipeline' 填写item name,创建新的Jenkins job; 2. 进入刚才创建好的job,打开Configure,在Pipeline下填写以下内容: Definition:Pipeline scripts from SCM SCM: Git Repositores: git url --> gro.

Tina的博客 6922

在jenkins Extensible Choice插件中使用groovy script获取git仓库代码分支

【代码】在jenkins Extensible Choice插件中使用groovy script获取git仓库代码分支。

ding_zk的博客 1万+

Jenkins中参数化构建在获取git分支时,获取不带“origin/”的分支名称的方法

Jenkins中参数化构建在获取git分支时,获取不带“origin/”的分支名称的方法

hgyu的专栏 4068

linux:jenkins 拉取gitlab代码编译

第一次使用jenkins,如有错误,请多多包涵,并私信我修改 搭建完成jenkins之后,我们就可以登录jenkins了 初始密码 admin,密码在搭建的服务的/var/lib/jenkins/secrets/initialAdminPassword 里面 使用admin账户登录,初次登录会先需要安装一些插件,根据个人需要安装,安装默认的就好了,之后再自定义插件安装. 我安装的有Active Choices/Build Timeout / dDate Parameter/Pipeline: Decl

weixin_39881935的博客 1281

Jenkins-Pipeline基本使用

Pipeline 是Jenkins 2.X核心特性,帮助Jenkins实现从CI到CD与DevOps的转变Pipeline 简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。

Zzzzzz的博客 3213

jenkins之Gradle插件配置

在jenkins中使用gradle 构建工程 一 :下载gradle plugin 在全局工具配置中(Global Tool Configuration) 下面主要是 项目构建配置 选择 引用gradle script 选择版本和填入任务 注意这种方式 在项目根目录下必须有gradle的脚本,否则会报任务不存在的错误,如果脚本在下级目录,建议使用shell方式 ...

惜阳 4352

Jenkins插件大全及用途简介

用户及权限 Jenkins 用户权限管理是Jenkins Administration中非常很重要的环节,由于大部分企业都会有自己的域控管理,所以和LDAP集成并基于用户组实现权限模型设计与管理是企业级Jenkins实践的重要内容。 lLDAP (https://plugins.jenkins.io/ldap),这个插件允许使用LDAP对用户进行认证,LDAP 服务器可以...

pansaky的博客 3万+
上一篇: 使用Net::SSH和Net::SCP编写Linux服务器管理脚本
下一篇: 数字签名、加密传输--原理
aabbcc456aa
博客等级 码龄18年 34粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值