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

相关文章
|
4天前
|
Java 应用服务中间件 Maven
Mac使用Idea配置传统SSM项目(非maven项目)
Mac使用Idea配置传统SSM项目(非maven项目)
13 1
|
4天前
|
XML JSON Java
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
本文介绍了如何使用IntelliJ IDEA和Maven搭建一个整合了Struts2、Spring4、Hibernate4的J2EE项目,并配置了项目目录结构、web.xml、welcome.jsp以及多个JSP页面,用于刷新和学习传统的SSH框架。
14 0
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
|
1天前
|
Java Apache Maven
Maven 项目文档
本节介绍创建Maven项目文档的方法。例如,在目录 `C:/MVN` 下使用命令 `mvn archetype:generate` 快速搭建 `consumerBanking` 项目后,需在 `pom.xml` 中添加或更新插件配置以支持文档生成,避免因 `maven-site-plugin` 版本过低导致 `mvn site` 执行时出现 `java.lang.NoClassDefFoundError` 错误。确保 `maven-site-plugin` 版本为 3.3 或以上。
|
3天前
|
Java Apache Maven
Maven 项目文档
本节介绍如何创建Maven项目文档。以在`C:/MVN`下的`consumerBanking`项目为例,使用`mvn archetype:generate`命令快速搭建。需在`pom.xml`中添加`maven-site-plugin`和`maven-project-info-reports-plugin`插件配置以避免运行`mvn site`时出现`NoClassDefFoundError`错误,确保`maven-site-plugin`版本为3.3或以上。
|
4天前
|
前端开发 Java 测试技术
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
|
5天前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
5天前
|
Java Maven
成功解决IDEA中建立新项目Maven会默认选择配置(图解详细说明)
这篇文章提供了在IntelliJ IDEA中设置新项目的Maven配置的详细步骤,包括如何通过菜单路径进入设置,选择Maven配置,以及展示设置后的效果,还提供了Maven的安装教程和解决导入项目时jar包下载问题的方案。
成功解决IDEA中建立新项目Maven会默认选择配置(图解详细说明)
|
5天前
|
SQL 前端开发 Java
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
这篇文章介绍了如何在IntelliJ IDEA中使用Maven将Spring Boot项目打包成可运行的jar包,并提供了运行jar包的方法。同时,还讨论了如何解决jar包冲突问题,并提供了在IDEA中同时启动Vue前端项目和Spring Boot后端项目的步骤。
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
|
9天前
|
Java Apache Maven
Maven 项目文档
本章介绍如何创建Maven项目文档。例如,在C:/MVN下创建名为`consumerBanking`的项目,可通过命令`mvn archetype:generate`快速搭建。之后需在`pom.xml`中添加或更新插件配置,如`maven-site-plugin`版本至3.3,以避免运行`mvn site`时遇到类未找到错误。这确保文档能成功生成。
|
9天前
|
XML Java Maven
"Maven项目模块化大揭秘!掌握Model间最佳继承设计,让你的代码优雅如诗,项目维护不再愁!"
【8月更文挑战第11天】Maven是Java项目中常用的构建工具,其模块化特性对大型项目的管理至关重要。本文介绍Maven中的继承与聚合机制,指导如何通过继承消除重复配置,以及如何通过聚合统一构建多个模块。遵循单一职责原则,文章建议按功能划分模块,并提供了父POM与子POM的配置示例。此外,还讨论了适度模块化、依赖管理的原则,帮助提升项目的可维护性和扩展性。
22 4