实战:Gradle构建工具实践-2023.6.22(测试成功)

news2025/1/1 23:41:45

·实战:Gradle构建工具实践-2023.6.22(测试成功)

image-20230622084504342

目录

image-20230623055012384

推荐文章

https://www.yuque.com/xyy-onlyone/aevhhf?# 《玩转Typora》

image-20230619080407452

实验环境

gitlab/gitlab-ce:15.0.3-ce.0
jenkins/jenkins:2.346.3-2-lts-jdk11
gradle-7.6.1
openjdk 11.0.18

实验软件

链接:https://pan.baidu.com/s/1OQaybJhxxCiGUo0Cjo6cTQ?pwd=0820
提取码:0820

2023.6.22-实战:Gradle构建工具实践-(测试成功)

image-20230622084424449

1、Gradle构建工具配置

官网:https://gradle.org/releases/ Gradle基于Groovy,具有更灵活更强大的构建系统,能帮助我们构建更复杂的项目。

image-20230622080919455

1.spring boot项目生成

初始化一个springboot项目 https://start.spring.io/ (也可以下载一个ide)
如果打不开也可以使用:https://start.aliyun.com/bootstrap.html

一个spring boot项目其实有很多依赖。

生成一个标准的Gradle项目:

  • 项目类型: Gradle-Groovy
  • 语言: Java
  • SpringBoot: 2.7.12 (版本)(随着时间变化版本号会变,默认即可)
  • Metadata
    • Group : 组信息
    • Artifact:包名称
    • Packging: 包格式(Jar、War)
  • Dependencies: 定义项目依赖(最后都会写入Pom.xml)

jar包:可执行的程序。(目前基本是这种)
war包:需要放到容器里,例如tomcat里,需要支持jsp环境的那种,才可以解析。

image-20230622081055880

以上配置完成后,点击Generate,生成测试代码。

image-20230622081149595

代码下载完成 后,可以用vscode打开,看下项目代码结构:

image-20230622081244837

2.创建gitlab仓库并上传代码

  • 创建一个devops6-gradle-service项目

注意:这里取消勾选初始化仓库配置项。

image-20230622081332354

  • 在本地git端将项目代码上传到刚才创建的项目里:

image-20230622081343691

Push an existing folder

cd existing_folder
git init --initial-branch=main
git remote add origin http://172.29.9.101:8076/devops6/devops6-gradle-service.git
git add .
git commit -m "Initial commit"
git push -u origin main

自己推送过程:

git init --initial-branch=main
git remote add origin http://172.29.9.101:8076/devops6/devops6-gradle-service.git
git add .
git commit -m "Initial commit"
git push -u origin main

image-20230622081442653

  • 到gitlab查看推送上来的代码:

image-20230622081453627

3.配置Gradle环境

提前安装好JDK, 然后安装gradle-7.6.1。

本次在gitlanci-runner上下载Gradle:(后面的环境为gitlab runner和jenkins agent都在一台机器上)

1、JDK环境自己之前已经安装好。

image-20230619213016203

如何安装JDK环境,请查看我的另一篇文章!

本地文档路径:实战:Linux下jdk8环境安装(测试成功)-2022.4.16(二进制方式) (jdk11安装方式一样)

image-20230619214431567

网络文档路径:https://blog.csdn.net/weixin_39246554/article/details/124221560

2、安装gradle-7.6.1

https://gradle.org/releases/

image-20230622081758252

###1、下载gradle-7.6.1软件包并解压
[root@Devops6 ~]#ll -h  gradle-7.6.1-bin.zip 
-rw-r--r-- 1 root root 117M Jun 22 08:17 gradle-7.6.1-bin.zip
[root@Devops6 ~]#unzip gradle-7.6.1-bin.zip -d /usr/local/

###2、配置环境
[root@Devops6 ~]#vim /etc/profile
……
export GRADLE_HOME=/usr/local/gradle-7.6.1/
export PATH=$GRADLE_HOME/bin:$PATH 
[root@Devops6 ~]#source /etc/profile

###3、验证
[root@Devops6 ~]#gradle -v

Welcome to Gradle 7.6.1!

Here are the highlights of this release:
 - Added support for Java 19.
 - Introduced `--rerun` flag for individual task rerun.
 - Improved dependency block for test suites to be strongly typed.
 - Added a pluggable system for Java toolchains provisioning.

For more details see https://docs.gradle.org/7.6.1/release-notes.html


------------------------------------------------------------
Gradle 7.6.1
------------------------------------------------------------

Build time:   2023-02-24 13:54:42 UTC
Revision:     3905fe8ac072bbd925c70ddbddddf4463341f4b4

Kotlin:       1.7.10
Groovy:       3.0.13
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          11.0.18 (Red Hat, Inc. 11.0.18+10-LTS)
OS:           Linux 3.10.0-957.el7.x86_64 amd64

4.配置Gradle镜像源

  • 修改Gradle源为国内阿里源

https://developer.aliyun.com/mvn/guide?spm=a2c6h.13651104.mirror-free-trial.5.10596e1aktMoO5

    maven {
      url 'https://maven.aliyun.com/repository/public/'
    }

image-20230622082441491

这里在本地更改代码,然后推送到gitlab仓库:

repositories {
	maven {
      url 'https://maven.aliyun.com/repository/public/'
    }
}

image-20230622082604918

image-20230622082639969

推送代码:

$ git add -A
$ git commit -m "update repo"
$ git push

再到gitlab上确认:

image-20230622082837298

5.手动测试代码

  • 下载代码
[root@Devops6 ~]#cd /data/devops6/
[root@Devops6 devops6]#ls 
devops6-maven-service  gitlab  jenkins_agent  jenkins_home
[root@Devops6 devops6]#git clone http://172.29.9.101:8076/devops6/devops6-gradle-service.git
Cloning into 'devops6-gradle-service'...
Username for 'http://172.29.9.101:8076': root
Password for 'http://root@172.29.9.101:8076': 
remote: Enumerating objects: 29, done.
remote: Counting objects: 100% (29/29), done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 29 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (29/29), done.
[root@Devops6 devops6]#ls
devops6-gradle-service  devops6-maven-service  gitlab  jenkins_agent  jenkins_home
[root@Devops6 devops6]#cd devops6-gradle-service/
[root@Devops6 devops6-gradle-service]#ls
build.gradle  gradle  gradlew  gradlew.bat  settings.gradle  src
[root@Devops6 devops6-gradle-service]#
  • 打包
[root@Devops6 devops6-gradle-service]#gradle build

image-20230622083111938

image-20230622083208292

image-20230622083304946

大部分gradle构建失败,都和网络有关系,再次重试下就行。

再次构建,速度就很快了:

image-20230622083343909

2、Jenkins与Gradle集成

image-20230622080758657

1.创建GitLab仓库

见上部分2.创建gitlab仓库并上传代码内容。

2.创建Jenkins作业

  • Jenkins上以devops6-maven-service来拷贝创建devops6-gradle-servicepipeline类型作业,点击保存。

image-20230622083536577

然后这里改变一些参数值:

image-20230622083709173

image-20230622083749525

其它都是一样的,点击保存。

3.编写Jenkins Pipeline

  • 注意:因为Maven和Gradle只是构建工具不一样,而后面的Jenkins代码则是完全一致的,因此这里直接测试。

image-20230622083957866

pipeline {
    agent {label "build"}
    stages{
        stage("CheckOut"){
            steps{
                script{
                    println("CheckOut")

                    checkout([$class: 'GitSCM', 
                        branches: [[name: "${env.branchName}"]], 
                        extensions: [], 
                        userRemoteConfigs: [[credentialsId: 'gitlab-root', url: "${env.srcUrl}"]]])
                    
                    sh "ls -l" //验证
                }
            }
        }

        stage("Build"){
            steps{
                script{
                    println("Build")

                    sh "${env.buildShell}"
                }
            }

        }        
        
    }
}

image-20230622084022238

image-20230622084042312

image-20230622084058375

测试结束。😘

3、Gradle常用命令

gradle build  构建项目
gradle build -x test 构建项目跳过测试
gradle clean 清空构建目录

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码
x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号
《云原生架构师实战》

image-20230107215126971

🍀 语雀

https://www.yuque.com/xyy-onlyone

image-20230515221819681

🍀 csdn
https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎
https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/675576.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

x-s参数逆向

x-s参数逆向[2023.6.22] 1.提要 众所周知,此次的加密逻辑进入一个叫window._webmsxyw()的函数里面 该函数是封装在一个自执行函数内部,并添加到了window属性里,下面是两种获取思路。 2.扣环境 扣环境的话,只需要在jsdom的docu…

内存耗尽后Redis会发生什么?

作为一台服务器来说,内存并不是无限的,所以总会存在内存耗尽的情况,那么当 Redis 服务器的内存耗尽后,如果继续执行请求命令,Redis 会如何处理呢? 内存回收 使用Redis 服务时,很多情况下某些键…

2023 node 接入腾讯云短信服务,实现发送短信功能

1、在 腾讯云开通短信服务,并申请签名和正文模板 腾讯云短信 https://console.cloud.tencent.com/smsv2 a、签名即是短信的开头。例如 【腾讯云短信】xxxxxxx; b、正文模板即短信内容, 变量部分使用{1}, 数字从1开始累推。例如&a…

Golang每日一练(leetDay0104) 最小高度树、戳气球

目录 310. 最小高度树 Minimum Height Trees 🌟🌟 312. 戳气球 Burst Balloons 🌟🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一…

MindSpore-TOOD模型权重迁移推理对齐实录

准备工作 环境: wsl2 Ubuntu 20.04 mindspore 2.0.0 python 3.8 pytorch 2.0.1 cpu 基于自己编写的mindspore TOOD项目和MMDetection实现的pytorch权重来做迁移, TOOD论文pytorch mmdetection实现 tood_r50_fpn_1x_coco权重 论文中的代码也是用mmdet…

浅谈前后端交互的基本原理

本文受众人群: 前端/后端开发工程师;Web应用程序设计师;项目经理;产品经理等。 为什么要去了解? 了解前后端交互的基本原理对于从事与Web开发相关的角色的人群是非常重要的。这包括前端开发工程师、后端开发工程师、全…

【Java高级语法】(十三)注解:解码程序设计中的元数据利器,在小小的@符里挖呀挖呀挖~用小小的注解做强大的开发...

Java高级语法详解之注解 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 元注解3.2 自定义注解3.3 常用内置注解 4️⃣ 应用场景5️⃣ 扩展:那些流行框架中的注解🌾 总结 1️⃣ 概念 Java 注解(Annotation) 是Java语言中一种元数据形式…

chatgpt赋能python:Python爬虫速度分析:如何加速你的爬虫?

Python爬虫速度分析:如何加速你的爬虫? Python作为一种优秀的胶水语言,被广泛应用于web开发、数据处理等众多领域。在众多应用场景中,Python爬虫无疑是其中之一。然而,在爬取海量数据时,爬虫的速度往往成为…

Arthas原理分析

在日常开发中,经常会使用到arthas排查线上问题,觉得arthas的功能非常强大,所以打算花了点时间了解一下其实现原理。并试着回答一下使用Arthas时存在的一些疑问。 Arthas主要基于是Instrumentation JavaAgent Attach API ASM 反射 OGNL等…

chatgpt赋能python:Python点的用法

Python点的用法 作为一名有着10年Python编程经验的工程师,我发现很多初学者对Python的点(.)用法存在疑惑。因此,在这篇文章中,我将详细介绍Python点的用法,并希望能够对这个问题有一个全面的认识。 什么是点 在Python中&#x…

Linux Xshell配置public key实现免密登录linux服务器

linux服务器安装成功后,登录linux服务器的工具有很多中,例如:Xshell、SecureCRT等等。而我所服务的用户使用xshell工具来对linux服务器进行运维。 当使用xshell登录linux服务器时,xshell提供了三种身份验证方式: 1.P…

实战:Maven构建工具实践-2023.6.21(测试成功)

实战:Maven构建工具实践-2023.6.21(测试成功) 目录 推荐文章 https://www.yuque.com/xyy-onlyone/aevhhf?# 《玩转Typora》 实验环境 gitlab/gitlab-ce:15.0.3-ce.0 jenkins/jenkins:2.346.3-2-lts-jdk11 apache-maven-3.9.2 openjdk 11.0.18实验软件 链接&…

对centOS的home目录进行扩容。

对centos的home目录进行扩容 1 首先要了解PV\VG\LV的含义1.1 基本概念1.2 基本命令行 2 实际操作2.1 盘符当前现状2.1实操 1 首先要了解PV\VG\LV的含义 1.1 基本概念 物理卷(Physical Volume,PV) 指磁盘分区或从逻辑上与磁盘分区具有同样功能…

SPSS统计教程:卡方检验

本文简要的介绍了卡方分布、卡方概率密度函数和卡方检验,并通过SPSS实现了一个卡方检验例子,不仅对结果进行了解释,而且还给出了卡方、自由度和渐近显著性的计算过程。本文用到的数据"2.2.sav"链接为: https://url39.ctfile.com/f/…

菲涅尔圆孔衍射matlab完整程序分享

根据惠更斯 - 菲涅耳原理,光的衍射是光束内部的次波之间的相干叠加,衍射光波场的光振动符合菲涅耳积分公式。但直接运用菲涅耳积分公式计算衍射光场是很困难的。对于夫琅和费衍射(远场衍射),在光源和接收屏距离衍射屏均为无穷远的…

实战:k8s证书续签-2023.6.19(测试成功)

实战:k8s证书续签-2023.6.19(测试成功) 目录 推荐文章 https://www.yuque.com/xyy-onlyone/aevhhf?# 《玩转Typora》 1、前言 k8s集群核心的证书有2套,还有1套非核心的(即使出问题也问题不大)。 ⚠️ 如果是kubeadm搭建的k8s集群,其有效期为…

chatgpt赋能python:Python烧录单片机:快速的开发工具

Python烧录单片机:快速的开发工具 简介 Python是一种高级的编程语言,被广泛应用于各种领域,包括机器学习、数据分析和物联网等领域。Python的易用性和简洁性已经成为其成功的关键因素之一。Python也能在烧录单片机时提供极大的方便性和灵活…

chatgpt赋能python:用Python自动爬取链接的内容——提升SEO效果的利器

用Python自动爬取链接的内容——提升SEO效果的利器 在当今数字化时代,SEO(搜索引擎优化)对于任何一个网站来说都至关重要。一种有用的SEO策略就是频繁地更新网站内容,吸引更多的访问者和搜索引擎爬虫。而最快捷的方法就是自动爬取…

chatgpt赋能python:Python爬虫解密:如何快速抓取网站数据

Python爬虫解密:如何快速抓取网站数据 在当今信息时代,人们越来越依赖互联网获取信息。不同的网站提供了大量数据,但是手动去抓取这些数据十分困难,效率也很低。Python爬虫技术是解决这一问题的有效工具之一,它可以帮…

使用npm安装pnpm包管理器

使用npm安装pnpm包管理器 一、安装 使用 npm install pnpm -g 命令安装pnpm npm install pnpm -g安装完成之后,使用pnpm -v命令查询是否成功安装,出现版本号即可 二、设置源 1.先查看源是否为淘宝的源 pnpm config get registry 2.设置源命令 pn…