记录在jenkins中自动部署maven项目时碰到的一些问题

这篇具有很好参考价值的文章主要介绍了记录在jenkins中自动部署maven项目时碰到的一些问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一个问题仓库目录权限导致的构建报错

Parsing POMs
00:24:53 Failed to transfer Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.3.0.RELEASE from/to alimaven (https://maven.aliyun.com/nexus/content/groups/public/): /opt/maven/repository/org/springframework/boot/spring-boot-starter-parent/2.3.0.RELEASE/spring-boot-starter-parent-2.3.0.RELEASE.pom.part.lock (No such file or directory)
00:24:53 ERROR: Failed to parse POMs
00:24:53 org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
00:24:53 [FATAL] Non-resolvable parent POM for com.xzz.test:Test:0.0.1-SNAPSHOT: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.3.0.RELEASE from/to alimaven (https://maven.aliyun.com/nexus/content/groups/public/): /opt/maven/repository/org/springframework/boot/spring-boot-starter-parent/2.3.0.RELEASE/spring-boot-starter-parent-2.3.0.RELEASE.pom.part.lock (No such file or directory) and 'parent.relativePath' points at wrong local POM @ line 16, column 10
00:24:53 
00:24:53 	at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:397)
00:24:53 	at hudson.maven.MavenEmbedder.buildProjects(MavenEmbedder.java:370)
00:24:53 	at hudson.maven.MavenEmbedder.readProjects(MavenEmbedder.java:340)
00:24:53 	at hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1330)
00:24:53 	at hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1124)
00:24:53 	at hudson.FilePath.act(FilePath.java:1192)
00:24:53 	at hudson.FilePath.act(FilePath.java:1175)
00:24:53 	at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.parsePoms(MavenModuleSetBuild.java:985)
00:24:53 	at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:689)
00:24:53 	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
00:24:53 	at hudson.model.Run.execute(Run.java:1900)
00:24:53 	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
00:24:53 	at hudson.model.ResourceController.execute(ResourceController.java:101)
00:24:53 	at hudson.model.Executor.run(Executor.java:442)
00:24:53 SSH: Connecting from host [020f4f5ad58e]
00:24:53 SSH: Connecting with configuration [dockerCentos] ...
00:24:53 SSH: Creating session: username [root], hostname [192.168.47.210], port [2,222]
00:24:53 SSH: Connecting session ...
00:25:13 SSH: Connected
00:25:13 SSH: Opening SFTP channel ...
00:25:13 SSH: SFTP channel open
00:25:13 SSH: Connecting SFTP channel ...
00:25:21 ERROR: Exception when publishing, exception message [Failed to connect and initialize SSH connection. Message: [Failed to connect SFTP channel. Message [channel is not opened.]]]
00:25:21 Build step 'Send files or execute commands over SSH' changed build result to UNSTABLE
00:25:21 Finished: FAILURE

这个报错就是从解析pom开始报错的,由于我的仓库目录是/opt/maven/repository/,jenkins没有权限访问导致此报错,只要放开权限就行了

先进入到/opt/maven目录,然后再执行下面命令即可解决报错问题
chmod -R o+r+w repository

第二个问题编译的jdk版本与实际的版本不一致

Exception in thread "main" java.lang.UnsupportedClassVersionError: hudson/remoting/Launcher has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
02:04:25 	at java.lang.ClassLoader.defineClass1(Native Method)
02:04:25 	at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
02:04:25 	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
02:04:25 	at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
02:04:25 	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
02:04:25 	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
02:04:25 	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
02:04:25 	at java.security.AccessController.doPrivileged(Native Method)
02:04:25 	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
02:04:25 	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:425)
02:04:25 	at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
02:04:25 	at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
02:04:25 	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
02:04:25 	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
02:04:25 	at jenkins.maven3.agent.Maven35Main.main(Maven35Main.java:136)
02:04:25 	at jenkins.maven3.agent.Maven35Main.main(Maven35Main.java:66)

这个报错和jdk版本有关,主要我用的jenkins默认的jdk是11,而我的项目使用的是8,所以在编译java8一类的项目时,总会出现这个报错,但是对整体流程影响不大。jenkins依然可以构建成功。

第三个问题jenkins构建jar包成功了,但是却没有把jar传送到远程服务器上执行,一般这种是由于路径配置的有问题。```

00:20:36 Started by user xiezz
00:20:36 Running as SYSTEM
00:20:36 Building in workspace /var/jenkins_home/workspace/MavenTest
00:20:36 The recommended git tool is: NONE
00:20:36 using credential xiezz
00:20:36  > git rev-parse --resolve-git-dir /var/jenkins_home/workspace/MavenTest/.git # timeout=10
00:20:36 Fetching changes from the remote Git repository
00:20:37  > git config remote.origin.url http://192.168.47.210:8090/xiezz/test.git # timeout=10
00:20:37 Fetching upstream changes from http://192.168.47.210:8090/xiezz/test.git
00:20:37  > git --version # timeout=10
00:20:37  > git --version # 'git version 2.30.2'
00:20:37 using GIT_ASKPASS to set credentials xiezz
00:20:37  > git fetch --tags --force --progress -- http://192.168.47.210:8090/xiezz/test.git +refs/heads/*:refs/remotes/origin/* # timeout=10
00:20:37  > git rev-parse refs/remotes/origin/main^{commit} # timeout=10
00:20:37 Checking out Revision b8407aa96ddd583d9fdccd1500afa87926bf136b (refs/remotes/origin/main)
00:20:37  > git config core.sparsecheckout # timeout=10
00:20:37  > git checkout -f b8407aa96ddd583d9fdccd1500afa87926bf136b # timeout=10
00:20:37 Commit message: "fix:修改pom中的springboot的parent的版本信息"
00:20:37  > git rev-list --no-walk b8407aa96ddd583d9fdccd1500afa87926bf136b # timeout=10
00:20:38 Parsing POMs
00:20:41 Established TCP socket on 40344
00:20:41 [Test] $ /var/jenkins_home/jdk8/bin/java -cp /var/jenkins_home/plugins/maven-plugin/WEB-INF/lib/maven35-agent-1.14.jar:/opt/maven/boot/plexus-classworlds-2.6.0.jar:/opt/maven/conf/logging jenkins.maven3.agent.Maven35Main /opt/maven /var/jenkins_home/war/WEB-INF/lib/remoting-3107.v665000b_51092.jar /var/jenkins_home/plugins/maven-plugin/WEB-INF/lib/maven35-interceptor-1.14.jar /var/jenkins_home/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.14.jar 40344
00:20:42 Exception in thread "main" java.lang.UnsupportedClassVersionError: hudson/remoting/Launcher has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
00:20:42 	at java.lang.ClassLoader.defineClass1(Native Method)
00:20:42 	at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
00:20:42 	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
00:20:42 	at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
00:20:42 	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
00:20:42 	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
00:20:42 	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
00:20:42 	at java.security.AccessController.doPrivileged(Native Method)
00:20:42 	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
00:20:42 	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:425)
00:20:42 	at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
00:20:42 	at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
00:20:42 	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
00:20:42 	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
00:20:42 	at jenkins.maven3.agent.Maven35Main.main(Maven35Main.java:136)
00:20:42 	at jenkins.maven3.agent.Maven35Main.main(Maven35Main.java:66)
00:20:42 ERROR: ================================================================================
00:20:42 ERROR: Invalid project setup: Connection reset
00:20:42 ERROR: [JENKINS-18403][JENKINS-28294] JDK 'jdk8' not supported to run Maven projects.
00:20:42 ERROR: Maven projects have to be launched with a Java version greater or equal to the minimum version required by the controller.
00:20:42 ERROR: Use the Maven JDK Toolchains (plugin) to build your maven project with an older JDK.
00:20:42 ERROR: Retrying with agent Java and setting compile/test properties to point to /var/jenkins_home/jdk8.
00:20:42 ERROR: ================================================================================
00:20:42 Established TCP socket on 38203
00:20:42 [Test] $ /opt/java/openjdk/bin/java -cp /var/jenkins_home/plugins/maven-plugin/WEB-INF/lib/maven35-agent-1.14.jar:/opt/maven/boot/plexus-classworlds-2.6.0.jar:/opt/maven/conf/logging jenkins.maven3.agent.Maven35Main /opt/maven /var/jenkins_home/war/WEB-INF/lib/remoting-3107.v665000b_51092.jar /var/jenkins_home/plugins/maven-plugin/WEB-INF/lib/maven35-interceptor-1.14.jar /var/jenkins_home/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.14.jar 38203
00:20:42 <===[JENKINS REMOTING CAPACITY]===>channel started
00:20:49 Executing Maven:  -B -f /var/jenkins_home/workspace/MavenTest/Test/pom.xml -s /opt/maven/conf/settings.xml -gs /opt/maven/conf/settings.xml clean package -U -Dmaven.test.skip=true
00:20:52 [INFO] Scanning for projects...
00:20:52 [INFO] 
00:20:52 [INFO] -------------------------< com.xzz.test:Test >--------------------------
00:20:52 [INFO] Building Test 0.0.1-SNAPSHOT
00:20:52 [INFO]   from pom.xml
00:20:52 [INFO] --------------------------------[ jar ]---------------------------------
00:20:55 [INFO] 
00:20:55 [INFO] --- clean:3.1.0:clean (default-clean) @ Test ---
00:20:56 [INFO] Deleting /var/jenkins_home/workspace/MavenTest/Test/target
00:20:56 [INFO] 
00:20:56 [INFO] --- resources:3.1.0:resources (default-resources) @ Test ---
00:20:57 [INFO] Using 'UTF-8' encoding to copy filtered resources.
00:20:57 [INFO] skip non existing resourceDirectory /var/jenkins_home/workspace/MavenTest/Test/src/main/resources
00:20:57 [INFO] skip non existing resourceDirectory /var/jenkins_home/workspace/MavenTest/Test/src/main/resources
00:20:57 [INFO] 
00:20:57 [INFO] --- compiler:3.8.1:compile (default-compile) @ Test ---
00:20:58 [INFO] Changes detected - recompiling the module!
00:20:58 [INFO] Compiling 2 source files to /var/jenkins_home/workspace/MavenTest/Test/target/classes
00:21:07 [INFO] 
00:21:07 [INFO] --- resources:3.1.0:testResources (default-testResources) @ Test ---
00:21:07 [INFO] Not copying test resources
00:21:07 [INFO] 
00:21:07 [INFO] --- compiler:3.8.1:testCompile (default-testCompile) @ Test ---
00:21:07 [INFO] Not compiling test sources
00:21:07 [INFO] 
00:21:07 [INFO] --- surefire:2.22.2:test (default-test) @ Test ---
00:21:08 [INFO] Tests are skipped.
00:21:08 [INFO] 
00:21:08 [INFO] --- jar:3.2.0:jar (default-jar) @ Test ---
00:21:09 [INFO] Building jar: /var/jenkins_home/workspace/MavenTest/Test/target/Test-0.0.1-SNAPSHOT.jar
00:21:10 [INFO] 
00:21:10 [INFO] --- spring-boot:2.3.0.RELEASE:repackage (repackage) @ Test ---
00:21:12 [INFO] Replacing main artifact with repackaged archive
00:21:13 [INFO] ------------------------------------------------------------------------
00:21:13 [INFO] BUILD SUCCESS
00:21:13 [INFO] ------------------------------------------------------------------------
00:21:13 [INFO] Total time:  21.343 s
00:21:13 [INFO] Finished at: 2023-03-15T16:21:13Z
00:21:13 [INFO] ------------------------------------------------------------------------
00:21:13 Waiting for Jenkins to finish collecting data
00:21:14 [JENKINS] Archiving /var/jenkins_home/workspace/MavenTest/Test/pom.xml to com.xzz.test/Test/0.0.1-SNAPSHOT/Test-0.0.1-SNAPSHOT.pom
00:21:14 [JENKINS] Archiving /var/jenkins_home/workspace/MavenTest/Test/target/Test-0.0.1-SNAPSHOT.jar to com.xzz.test/Test/0.0.1-SNAPSHOT/Test-0.0.1-SNAPSHOT.jar
00:21:14 channel stopped
00:21:14 SSH: Connecting from host [020f4f5ad58e]
00:21:14 SSH: Connecting with configuration [dockerCentos] ...
00:21:14 SSH: Creating session: username [root], hostname [192.168.47.210], port [2,222]
00:21:14 SSH: Connecting session ...
00:21:44 SSH: Connected
00:21:44 SSH: Opening SFTP channel ...
00:21:44 SSH: SFTP channel open
00:21:44 SSH: Connecting SFTP channel ...
00:22:10 SSH: Connected
00:22:10 SSH: cd [/]
00:22:10 SSH: OK
00:22:10 SSH: Opening exec channel ...
00:22:10 SSH: EXEC: channel open
00:22:10 SSH: EXEC: STDOUT/STDERR from command [BASE_HOME=/root/data
00:22:10 JAR_NAME=Test-0.0.1-SNAPSHOT.jar
00:22:10 LOG_NAME=out.log
00:22:10 # 停止应用
00:22:10 ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}' | xargs -i kill {}
00:22:10 # 备份日志
00:22:10 if [ -f $BASE_HOME/$LOG_NAME ]; then
00:22:10     mv $BASE_HOME/$LOG_NAME $BASE_HOME/$LOG_NAME.`date +%Y%m%d%H%M%S`
00:22:10 fi
00:22:10 # 备份jar包
00:22:10 if [ -f $BASE_HOME/$JAR_NAME ]; then
00:22:10     cp $BASE_HOME/$JAR_NAME $BASE_HOME/$JAR_NAME.`date +%Y%m%d%H%M%S`
00:22:10 fi
00:22:10 #启动应用
00:22:10 nohup java -jar $BASE_HOME/$JAR_NAME &>$BASE_HOME/$LOG_NAME &] ...
00:22:10 SSH: EXEC: connected
00:22:20 SSH: EXEC: completed after 10,456 ms
00:22:20 SSH: Disconnecting configuration [dockerCentos] ...
00:22:20 SSH: Transferred 0 file(s)
00:22:20 Finished: SUCCESS

我们可以看到构建是成功的,但是倒数第二行却是0 files,说明并没有传送jar包到远程服务器,此时就需要检查一下ssh中配置的路径和jenkins中的这个项目的的工作空间里的路径是否相同;如下所示:
记录在jenkins中自动部署maven项目时碰到的一些问题
我们这里的目录是Test/target/Test-0.0.1-SNAPSHOT.jar,此时我们在ssh的配置中也应该符合这种目录形式:
记录在jenkins中自动部署maven项目时碰到的一些问题
这样的话,就可以成功将jar包传到远程服务器了,不过这里也有必要解释一下几个名词的意义:
Source files: 源文件,这个路径就是刚刚我截图工作空间的相对路径,Test/target/Test-0.0.1-SNAPSHOT.jar
Remove prefix:上传到目标服务器时,需要移除jar包之前的路径,上边source file写的是Test/target/Test-0.0.1-SNAPSHOT.jar,这里移除前缀就是Test/target/
Remote directory:上传到目标服务器的那个目录下,之前ssh配置信息的是/, 这里写的是root/data,那么文件就会上传到目标服务器的 /root/data 下.
这个问题的详细解答可以参考另一个大神的博客,传送门文章来源地址https://www.toymoban.com/news/detail-446560.html

到了这里,关于记录在jenkins中自动部署maven项目时碰到的一些问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jenkins 2.346.1 从git拉取后自动构建部署springboot maven项目

    1、jenkins官网下载 jenkins2.346.1版本(2.346之后不支持java8) Jenkins 的安装和设置 下载的war包通过 java -jar jenkins.war可运行 也可下载安装版本直接安装 http://localhost:8080,端口号8080根据安装时的设定进行对应的变更,安装后需要等待一段时间。 确认发布应用的服务器安装了java g

    2024年02月02日
    浏览(47)
  • jenkins使用gitee插件自动部署404问题记录

    结论: 问题原因没有找到,有大佬遇到相同问题,找到问题原因的请教一下,感谢,这是,另一种实现相同效果的方式, 这个问题解决了两天 找不到问题后来放弃了 退而求其次 我们使用通用的 webhook 触发下载插件 Generic Webhook Trigger jenkins安装Generic Webhook Trigger 在插件管理中安装以下

    2024年01月19日
    浏览(41)
  • jenkins使用gitee插件自动部署webhook404问题记录

    结论: 问题原因没有找到,有大佬遇到相同问题,找到问题原因的请教一下,感谢,这是,另一种实现相同效果的方式, 这个问题解决了两天 找不到问题后来放弃了 退而求其次 我们使用通用的 webhook 触发下载插件 Generic Webhook Trigger jenkins安装Generic Webhook Trigger 在插件管理中安装以下

    2024年01月24日
    浏览(54)
  • 2023全网最细最全保姆级gitlab+Jenkins+maven自动化部署springboot项目教程

    如果没有Linux基础请仔细看好每一个步骤,避免出错,从0到1带你搭建自动化部署环境,包括服务器安装,自动化部署所需各类软件安装配置,详细贴出每一步,不断步骤,让你一次搭建部署完成,希望这篇文章能给大家带来一定的帮助,话不多说开始整 2.0 CentOs安装 2.0.1 下载VM虚拟机 我直

    2024年02月08日
    浏览(57)
  • Jenkins配置maven项目,打包、部署、发布

    Jenkins和项目在两台服务器上 Jenkins的下载安装部署省略,可自行上官网。 1.安装maven插件 完成后,会出现“success”,并且勾选“安装完成后重启Jenkins(空闲时)” 2.部署有Jenkins的服务器上,下载maven,配置环境变量,我在opt/目录下放着。  执行命令: Jenkins配置maven 配置maven,

    2024年02月09日
    浏览(43)
  • Docker 安装 Jenkins 并部署 Maven 项目

    在开始之前,我们需要保证系统中已经安装了Docker、JDK、Maven。 我这里使用的是 2.344 版本的 Jenkins,拉取命令如下: 需要稍微等一会,等待拉取完成。 镜像下载完成后,我们可以通过如下命令查看我们 docker 中的所有镜像。 这里可以看到我们刚才拉取的 2.344版本的 Jenkins 镜

    2024年02月13日
    浏览(49)
  • Jenkins+Maven+Gitlab+Tomcat 自动化构建打包,部署

    1、安装服务 Jenkins工具、环境、插件配置 全局变量配置 Manage JenkinstoolsJDK 安装 安装插件 Deploy to container 安装此插件,才能将打好的包部署到tomcat上     配置国内mvn源 创建maven项目 1  2   3    4    5    6    7    8     9 10  

    2024年02月05日
    浏览(54)
  • Jenkins + Gitee + Maven 自动化部署 Spring Boot

    目录 1、前言 1 .1、插件简介 1.2、插件安装 2、创建Maven项目 2.1、新建一个全新的项目 2.2、拷贝已有项目 3、项目配置 3.1 、General 3.2、源码管理 3.3、构建触发器 3.4、构建环境 3.5、Pre Steps 3.6、Build 1)Root POM 2)Goals and options 3)【高级】 3.7、Pre Steps 3.8、构建环境 3.9、Post Ste

    2024年02月08日
    浏览(66)
  • Jenkins执行Maven项目的离线构建,引用本地lib资源方案记录

    这段时间手头上有个多模态结构的Maven项目需要给到客户进行验证部署,且不能直接打包镜像,而是在客户本地进行编译构建,但由于客户方的 Maven 私库有网络隔离不能连通外网,我们无法将项目的其他依赖推送到客户方,所以就需要将项目适配成引用本地lib目录下的jar包。

    2024年02月04日
    浏览(44)
  • 11. 使用tomcat中碰到的一些问题

    1.修改/tomcat/conf/web.xml文件 2.修改/tomcat/conf/server.xml文件 3.总结 信息如下

    2024年02月14日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包