jenkins-CICD系列之-Jenkins 打包gitlab的maven 项目

简介: 构建一个简单的springboot的jar包
  1. 进入我之前配置的 jenkins-demo 的配置界面
  2. 选择add post-build step , 选择 Send build artifacts over SSH ,但是我没有 说明我没有配置
  1. 去安装 发送插件

  1. 安装 publish-over-ssh 这个插件 , 发现抱错 , 是这个下载不下来 。复制连接先下载  https://updates.jenkins.io/download/plugins/publish-over/0.22/publish-over.hpi
java.security.cert.CertificateNotYetValidException: NotBefore: WedOct1212:50:06CST2022atjava.base/sun.security.x509.CertificateValidity.valid(CertificateValidity.java:273)
atjava.base/sun.security.x509.X509CertImpl.checkValidity(X509CertImpl.java:619)
atjava.base/sun.security.provider.certpath.BasicChecker.verifyValidity(BasicChecker.java:190)
atjava.base/sun.security.provider.certpath.BasicChecker.check(BasicChecker.java:144)
atjava.base/sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:125)
Caused: java.security.cert.CertPathValidatorException: validitycheckfailedatjava.base/sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:135)
atjava.base/sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:224)
atjava.base/sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:144)
atjava.base/sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:83)
atjava.base/java.security.cert.CertPathValidator.validate(CertPathValidator.java:309)
atjava.base/sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:364)
Caused: sun.security.validator.ValidatorException: PKIXpathvalidationfailedatjava.base/sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:369)
atjava.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:263)
atjava.base/sun.security.validator.Validator.validate(Validator.java:264)
atjava.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
atjava.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)
atjava.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1341)
Caused: javax.net.ssl.SSLHandshakeException: PKIXpathvalidationfailed: java.security.cert.CertPathValidatorException: validitycheckfailedatjava.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
atjava.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:371)
atjava.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:314)
atjava.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:309)
atjava.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1357)
atjava.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1232)
atjava.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(CertificateMessage.java:1175)
atjava.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)
atjava.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480)
atjava.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:458)
atjava.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201)
atjava.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)
atjava.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1500)
atjava.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1415)
atjava.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:450)
atjava.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:421)
atjava.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:580)
atjava.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183)
atjava.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1665)
atjava.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
atjava.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
athudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1291)
Caused: java.io.IOException: Failedtoloadhttps://updates.jenkins.io/download/plugins/publish-over-ssh/1.24/publish-over-ssh.hpi to /var/lib/jenkins/plugins/publish-over-ssh.jpi.tmpathudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1302)
Caused: java.io.IOException: Failedtodownloadfromhttps://updates.jenkins.io/download/plugins/publish-over-ssh/1.24/publish-over-ssh.hpiathudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1336)
athudson.model.UpdateCenter$DownloadJob._run(UpdateCenter.java:1893)
athudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2205)
athudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1867)
atjava.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
atjava.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
athudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:121)
atjava.base/java.lang.Thread.run(Thread.java:833)
  1. 原因是下载不下来 ,下载后本地安装 报错 , 原因是没有安装依赖插件 ,这里是分两步下载的


/

java.io.IOException: Failedtoload: PublishOverSSH (publish-over-ssh1.24)
-publish-over的版本0.22丢失。安装版本0.22或者更高的可以修复。athudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:1018)
athudson.PluginManager.dynamicLoad(PluginManager.java:926)
Caused: java.io.IOException: Failedtoinstallpublish-over-sshpluginathudson.PluginManager.dynamicLoad(PluginManager.java:940)
athudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2217)
Caused: java.io.IOException: Failedtodynamicallydeploythispluginathudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2221)
athudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1867)
atjava.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
atjava.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
athudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:121)
atjava.base/java.lang.Thread.run(Thread.java:833)

  1. 下载完成后 先安装  publish-over.hpi  在安装 publish-over-ssh.hpi 这样都安装成功了
  1. 去全局配置一个远程的 ssh 连接   服务器需要新建 /usr/local/jenkis-demo 不然会提示连不到这个文件夹

  1. 选中  Send build artifacts over SSH  进行如下配置
#!/bin/shpid=$(cat /usr/local/jenkis-demo/UploadSchedule.pid)echo$pid# 判断示范存在这个pidpid_exist=$(ps aux | awk '{print $2}'| grep -w $pid)echo$pid_exist# 如果不存在,pid是空的 -n 代表检查字符串长度是否为0 是就返回trueif [ -n"$pid_exist" ]
thenecho"have pid kill"#删除 UploadSchedule.pid 这个文件中的pidkill-9$(cat /usr/local/jenkis-demo/UploadSchedule.pid)fi# 启动java 并且将pid写到 UploadSchedule.pid 文件中nohup /usr/local/jdk-17.0.3.1/bin/java -jar /usr/local/jenkis-demo/target/jenkins-demo.jar > /usr/local/jenkis-demo/log/jenkis-demo.log 2>&1 &  echo$! > /usr/local/jenkis-demo/UploadSchedule.pid

相关文章
|
5月前
|
Java 区块链 Maven
关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法
关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法
519 3
|
5月前
|
jenkins Java 持续交付
使用Jenkins完成springboot项目快速更新
本文介绍了使用Jenkins和WinSW实现SpringBoot项目自动化部署的完整流程。首先讲解了Jenkins作为持续集成工具的作用,然后详细说明了环境准备步骤:包括JDK版本管理、WinSW服务配置(含XML文件修改)以及bat启动脚本编写。重点演示了Jenkins的项目配置方法,包括源码管理设置和构建步骤中的Windows批处理命令调用。通过这套方案,开发者只需推送代码到Git仓库,即可触发Jenkins自动完成项目构建、服务重启等全流程,显著提升部署效率。文章还提到IDEA的Jenkins插件可进
224 0
|
4月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
322 0
|
Java Maven 开发者
maven项目中官方setting.xml文件
`settings.xml` 是 Maven 的配置文件,用于定义用户或全局级别的构建行为。它包含本地仓库路径、网络代理、服务器认证、仓库镜像及构建配置文件等设置,帮助开发者根据环境定制 Maven 行为,提升构建效率与灵活性。
1051 0
|
7月前
|
Java 测试技术 项目管理
【JavaEE】从 0 到 1 掌握 Maven 构建 Java 项目核心技巧 解锁 Java 项目高效管理实用实例
本文从Maven基础概念讲起,涵盖安装配置、核心概念(如POM与依赖管理)及优化技巧。结合Java Web项目实例,演示如何用Maven构建和管理项目,解决常见问题,助你高效掌握这一强大工具,提升Java开发与项目管理能力。适合初学者及进阶开发者学习。资源链接:[点此获取](https://pan.quark.cn/s/14fcf913bae6)。
273 6
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
681 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
Java 关系型数据库 MySQL
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
1012 1
Maven——创建 Spring Boot项目
|
Java 关系型数据库 MySQL
如何使用 maven 创建一个 Spring Boot项目
Maven 是一个强大的项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,提高开发效率。其核心功能包括项目构建和依赖管理。项目构建支持编译、测试、打包和发布等流程,而依赖管理则通过中央仓库、本地仓库和私有服务器获取和管理项目依赖。示例中展示了如何创建第一个 SpringBoot 项目并实现简单接口。
417 1
如何使用 maven 创建一个 Spring Boot项目
|
Java Maven Kotlin
idea maven创建kotlin项目
本文介绍了在IntelliJ IDEA中使用Maven创建Kotlin项目的步骤,包括在`pom.xml`文件中添加Maven中央仓库、配置`kotlin-maven-plugin`插件、指定源目录、添加测试插件和执行插件,以及添加Kotlin测试依赖和标准库依赖。文中还提到了如何通过更换镜像或使用代理来解决依赖下载速度慢的问题,并展示了运行示例代码的截图。
778 4
idea maven创建kotlin项目
|
Java Maven Android开发
eclipse创建maven项目
本文介绍了在Eclipse中创建Maven项目的步骤,包括打开Eclipse、选择Java项目、完成项目创建以及自动下载插件的过程。
352 2
eclipse创建maven项目

推荐镜像

更多