首页 > 其他分享 >DockerCompose+Jenkins+Pipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门

DockerCompose+Jenkins+Pipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门

时间:2024-06-12 17:24:34浏览次数:12  
标签:解压 Pipeline SpringBoot jdk 配置 插件 JDK maven jenkins

场景

DockerCompose中部署Jenkins(Docker Desktop在windows上数据卷映射):

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/139491855

Docker+Jenkins+Gitee+Maven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/128399052

上面流程新建jenkins项目为maven项目,这里使用jenkinsfile文件的形式使用流水线语法进行SpringBoot/Maven项目的打包示例。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi

实现

1、Pipeline流水线语法文档

https://www.jenkins.io/zh/doc/book/pipeline/syntax/

2、环境搭建,首先在windows电脑上(这里使用本机演示,尽量使用linux服务器)

新建目录,并新建如下目录,其中jenkins_home用来映射容器内Jenkins的工作目录;tools用来映射容器内离线解压配置jdk和maven等工具

 

3、Windows上使用Docker Desktop部署jenkins后运行卡顿现象排查

首先按照上面文章部署jenkins容器时不要使用latest的最新版本,而是使用lts的稳定版本。

其次在启动jenkins容器后不进行安装推荐的插件,会导致很多插件的版本与jenkins的版本不对应,

进而导致大量不兼容报错的提示,所以在启动成功之后按需自行安装插件。

 

4、docker(Docker Desktop)部署jenkins后如何通过解压配置的方式配置jdk

首先下载jdk的tar.gz包,注意这里要下载linux版本的,因为最终是要给容器内jenkins使用。

比如这里下载的为jdk-8u401-linux-x64.tar.gz

然后以管理员模式运行解压软件,这里是使用winrar,然后将上面的jdk的压缩包进行解压。

windows上一定要以管理员模式解压,否则会有问题。

当然如果是在linux上则直接使用解压命令解压即可。

 

注意解压之后会有一层最外层的目录,将外层目录去掉,最终实现jdk的目录结构为

 

即将原来的bin所在的目录直接放在tool目录下的java路径下

同理在linux上可以执行如下类似的指令

rm -rf java & mkdir java & tar xzvf jdk-*.tar.gz --strip-components 1 -C ./java

jenkins中配置jdk的安装

访问jenkins的页面中系统管理-全局工具配置-JDK安装-不要勾选自动安装,注意这里的别名为jdk,

这个名称需要记住,后续需要与jenkinsfile中tool配置时一致。

然后注意这里的JAVA_HOME路径为:/tool/java

 

5、docker(Docker Desktop)部署jenkins后如何通过解压配置的方式配置maven

同上面解压jdk同样,下载maven的压缩包并解压至tool下maven目录下,使bin目录所在的目录直接就在

tool/maven下。

修改maven的配置文件,修改上面conf下settings.xml中的配置项。

比如修改仓库地址,首先在容器映射路径下tool下新建repo目录,然后修改settings配置文件中localRepository的路径为

/tool/repo

 

比如修改镜像源为aliyun仓库地址,这里不再赘述,其实就是对maven的配置文件进行修改,比如可以拿本地开发调试用的maven的配置文件进行修改和替换。

访问jenkins的页面中系统管理-全局工具配置-Maven安装-不要勾选自动安装,注意这里的别名为maven

这个名称需要记住,后续需要与jenkinsfile中tool配置时一致。

然后注意这里的MAVEN_HOME路径为:/tool/maven

 

6、插件安装

配置完以上jdk与maven之后,需要安装必须的插件。

这些需要安装Git plugin、Maven Integration、Pipeline(流水线插件)、Localization:Chinese(Simplified)中文语言包汉化插件、Pipeline:Stage View Plugin插件(流水线图形化插件)、Gitee(这里代码存放在Gitee上)。

以上插件以及其他插件的安装根据个人需求进行安装。

确保拉取代码并打包的必须的插件安装即可。

 

7、配置流水线项目

新加项目-安装pipeline插件后会有流水线项目选项

 

然后配置gitee代码地址

 

接下来配置git以及凭证等

定义流水线为Pipeline script from SCM,然后SCM为Git,配置仓库地址以及拉取代码的凭证,这里使用的是账户密码,当然也可以使用其他

ssh公钥私钥、giteeapi令牌等方式。

 

添加凭证直接点击添加

 

 然后继续往下配置Jenkinsfile的路径,这里配置项目根目录下,然后在gitee远端代码仓库根目录下新建Jenkinsfile文件

 

这样的目的是使流水线的配置文件可以被版本管理起来,方便修改和维护。

修改文件内容如下

pipeline {
    agent any
 tools {
        maven 'maven'
        jdk   'jdk'
    }
    stages {
  stage('编译构建') {
            steps {
                sh 'mvn clean package -DskipTests'
            }
        }
    }
 post {
        always {
            echo '构建结束,结果:'
        }
  success {
            echo '构建成功'
        }
  failure {
            echo '构建失败'
        }
    }
}

流水线的具体语法参考上面,这里这里的tools中与上面配置jdk和maven时配置的别名一致。

8、构建流水线项目

点击立即构建,第一次构建时间较长,因为需要下载依赖,然后构建完成可以查看日志确认

 

并且到容器内与容器外映射的路径的jenkins_home/workspace/server_test(这里是新建的任务名)下面对应的jar包路径下去确认。

 

后续拿到jar包之后需要什么其它操作,就是根据需求自行实现了。比如可以实现通过ssh发送jar包并实现更新操作等。  

标签:解压,Pipeline,SpringBoot,jdk,配置,插件,JDK,maven,jenkins
From: https://www.cnblogs.com/badaoliumangqizhi/p/18244334

相关文章

  • springboot集成socketio
    1.引入依赖<dependency><groupId>com.corundumstudio.socketio</groupId><artifactId>netty-socketio</artifactId><version>2.0.3</version></dependency>2.基本配置server:port:8081socketio:host:localho......
  • springboot3项目的搭建四.3(security登录认证配置)
    security的jwt验证:总体来说,我们加入依赖项,security就已经开始生效了,但是使用的默认的UserDetails和UserDetailsService,一、我们只要继承UserDetailsService,在数据库中查询用户和权限列表,封装成UserDetails的实现类,返回就可以实现,security验证的接管,最多在security配置类中,放行......
  • SpringBoot 多文件打包下载
    第一种@RestController@RequestMapping("/download")publicclassDownloadController{@GetMapping("/files")publicResponseEntity<InputStreamResource>downloadFiles()throwsIOException{//......
  • JDK8新特性之Lambda表达式
    Lambda,音标[ˈlamdə],中文翻译“拉姆达”,第11个希腊字母λ(大写Λ)。1.引入原因JDK8引入Lambda表达式是为了简化匿名类相关代码。当接口比较简单,只有一个方法时,我们也不得不写许多无关业务的代码来实现匿名类。而Lambda表达式却允许将功能(functionality)视作方法参数或者视代......
  • java 与jdk 关系
      java与jdk的关系Java与JDK的关系是,Java是一种编程语言,而JDK(JavaDevelopmentKit)是Java语言的官方开发工具包。12JDK是整个Java技术的核心,它包括了JRE(JavaRuntimeEnvironment)和一系列Java开发工具(如javac、java、javadoc等)。JRE是Jav......
  • 【问题解决】java.util.jar.JarException: file:bcprov-jdk18on-1.78.jar is not sign
    现象启动程序报错,同时在classpath下有多个bcprov-jdk开头的包Causedby:java.util.jar.JarException:file:/C:/Users/93986/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcprov-jdk18on/1.78/619aafb92dc0b4c6cc4cf86c487ca48ee2d67a8e/bcprov-jdk18on-1.78.jaris......
  • 网易面试:SpringBoot如何开启虚拟线程?
    虚拟线程(VirtualThread)也称协程或纤程,是一种轻量级的线程实现,与传统的线程以及操作系统级别的线程(也称为平台线程)相比,它的创建开销更小、资源利用率更高,是Java并发编程领域的一项重要创新。PS:虚拟线程正式发布于Java长期支持版(LongTermSuort,LTS)Java21(也就是JDK21)。......
  • SpringBoot面试准备 第一天
    什么是SpringBoot?简化Spring 应用程序开发的框架,通过自动配置、起步依赖和简化的配置方式,使开发人员能够更快速、方便地创建和配置Spring应用程序,提高开发效率和开发体验目标是使开发人员能够更加快速、方便地创建和配置Spring应用程序,同时尽可能地减少样板代码和繁琐......
  • 【接口自动化测试框架练习】springboot+react+mysql~极简版postman
    可以说是一个toyprogram,chatgpt完成了一部分工作,我也完成了一部分工作,我俩合作的,我占百分之80%,他百分之20%,哈哈没他不行,源码奉上。https://github.com/Jinwenxin/test-api-frontend1.功能简介:分成三部分,如左侧导航栏所示:测试用例管理:测试用例的增删改查以及运行测试套件管理......
  • 【S087】Springboot+Thymleaf在线答疑系统项目源码 java源代码
    运行截图:登录学生注册教师注册学生发起问题联系我们后台首页常见问题管理添加常见问题人工答疑学生管理个人信息修改密码项目组成:项目源码:源码获取⬇⬇⬇......