使用Jenkins自动部署基于Java开发的Web应用程序[SpringBoot应用程序编程]

为了实践持续集成/持续交付(CI/CD),我在Jenkins中设置了生成Artifacts并将其部署到应用服务器的步骤。

对于源代码和服务器的搭建,请参考这里的准备部分。
如果您想要实现自动部署到Tomcat服务器,请查阅Tomcat应用程序部分。

Jenkins的工作流程1

    1. 检出源代码

 

    1. 通过Maven构建并输出jar文件

 

    1. 将jar文件传输到JVM服务器

 

    执行jar文件

检出源代码

在代码管理中,选择Git作为源代码,并将在准备步骤中准备的Github仓库进行检出。分支选择*/master。

使用Maven运行构建并输出jar文件。

选择执行Shell,并使用./mvnw命令来执行。

构建使用Maven,但是使用的是包含在仓库中的MavenWrapper进行执行,而不是Maven任务。
由于仓库中有两个项目,所以在执行之前会先切换到当前目录WebSpringBoot。

cd WebSpringBoot
./mvnw clean package

运行Maven会在/WebSpringBoot/target目录下生成web-spring-boot.jar文件。

将jar文件传输到JVM服务器上

选择执行Shell,并通过SSH连接到JVM服务器,将生成的Artifacts:web-spring-boot.jar文件放置在其中。
另外,由于以下原因,传输的jar文件将具有完全访问权限(rwx)。

    • 継続的デプロイを行うため、ファイルの上書きを許可します。

 

    JVMサーバーのサービスから自己起動する3ので、ファイルの実行を許可します。
# SCPコマンドでJankinsからJVMサーバーにjarファイルを転送する
scp -i ~/.ssh/id_rsa WebSpringBoot/target/web-spring-boot.jar jvm@192.168.33.20:/var/jvm
# 実行権限を付与する
ssh -i ~/.ssh/id_rsa jvm@192.168.33.20 sudo chmod 700 /var/jvm/web-spring-boot.jar

运行jar文件

选择运行Shell并使用SSH连接到JVM服务器,以重新启动应用程序服务。
ssh -i ~/.ssh/id_rsa jvm@192.168.33.20 sudo systemctl restart app

当 Jenkins 作业执行成功后,您可以通过以下 URL 确认应用程序的运行情况。
http://192.168.33.20:8080/

配置页面设置

image.png

请提供更多上下文,以便我可以为您提供一个完整的翻译。

安装Spring Boot应用程序(来自Spring Boot参考指南)

这次我们故意选择了使用命令行执行来进行构建和部署,所以使用了shell的执行任务。 ↩

这个仓库中包含了两个Maven项目,一个是用于war的WebSpringMvc,另一个是用于jar的WebSpringBoot。这次我们将使用/WebSpringBoot。 ↩

要让jar可执行,需要将spring-boot-maven-plugin的executable设置为true。 ↩