下面是基于Jenkins发布编译后的class文件的完整攻略:
1. 安装Jenkins
Jenkins是一个开源的持续集成工具,我们需要在服务器上安装Jenkins并启动它。安装Jenkins的方式有多种,可以通过下载安装包进行安装,也可以通过包管理系统进行安装。这里以Ubuntu系统为例,通过APT包管理器安装Jenkins。
- 在终端执行以下命令更新包索引:
sudo apt-get update
- 安装Jenkins:
sudo apt-get install jenkins
- 启动Jenkins:
sudo systemctl start jenkins
- 验证Jenkins是否已启动,打开浏览器,访问Jenkins网址:
http://[Jenkins主机IP地址]:8080
2. 配置Jenkins
成功访问Jenkins后,进入Jenkins控制台,进行以下配置:
-
安装"Maven Integration"插件。
-
配置Maven,进入"Manage Jenkins" => "Global Tool Configuration",在"Maven"下配置Maven的安装路径。
-
配置Jenkins项目。创建一个新项目,在"General"选项卡下填写项目名称和描述,在"Source Code Management"选项卡下填写项目的代码仓库地址,在"Build Triggers"选项卡下选择"Build whenever a SNAPSHOT dependency is built"选项。在"Build"选项卡下选择"Invoke top-level Maven targets"选项,配置Maven命令。
3. 示例说明
以下是两条基于Jenkins发布编译后的class文件的示例:
示例一:Java Web应用
假设我们有一个Java Web应用,代码仓库地址为git@github.com:username/project.git
,应用使用Maven构建,在完成Maven构建后,应用的class文件在target/classes
目录下。我们需要将构建后的class文件发布到服务器上。
-
在Jenkins中创建一个新项目,填写项目名称和描述。
-
在"Source Code Management"选项卡下设置Git仓库地址和认证信息。
-
在"Build Triggers"选项卡下选择"Build whenever a SNAPSHOT dependency is built"选项。
-
在"Build"选项卡下选择"Invoke top-level Maven targets",在"Goals"一栏中输入Maven命令:
clean package
。 -
在"Post Steps"选项卡下选择"Send build artifacts over SSH"选项,并配置SSH信息,目标目录为服务器上的某个目录。
-
保存并执行项目,等待项目构建完成并发布class文件。
示例二:Spring Boot应用
假设我们有一个Spring Boot应用,代码仓库地址为git@github.com:username/project.git
,应用使用Maven构建,在完成Maven构建后,应用的可执行Jar包在target
目录下。我们需要将构建后的可执行Jar包发布到服务器上并启动应用。
-
在Jenkins中创建一个新项目,填写项目名称和描述。
-
在"Source Code Management"选项卡下设置Git仓库地址和认证信息。
-
在"Build Triggers"选项卡下选择"Build whenever a SNAPSHOT dependency is built"选项。
-
在"Build"选项卡下选择"Invoke top-level Maven targets",在"Goals"一栏中输入Maven命令:
clean package spring-boot:repackage
。 -
在"Post Steps"选项卡下选择"Send build artifacts over SSH"选项,并配置SSH信息,目标目录为服务器上的某个目录。
-
在"Post Steps"选项卡下选择"Execute Shell"选项,并输入启动应用的Shell脚本,例如:
```
# 停止正在运行的应用
PID=$(ps aux | grep demo.jar | grep -v grep | awk '{print $2}')
if [ -n "$PID" ]; then
kill -9 $PID
fi
# 启动应用
nohup java -jar /home/user/demo.jar > /dev/null 2>&1 &
```
- 保存并执行项目,等待项目构建完成并发布应用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于jenkins发布编译后的class文件 - Python技术站