【Jenkins】Jenkins实现自动部署后台应用,自动部署Maven项目,钩子触发器

jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细) 一、jenkins是什么? Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。其功能包括:1、持续的软件版本发布/测试项目。2、监控外部调用执行的工作。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具... 阅读详情

目录

一、环境配置

1.1 JDK环境配置

1.2 Maven的安装配置

1.3 git的安装

 二、Jenkins的安装配置

2.1 Jenkins的下载

2.2 使用Jenkins

2.2.1 启动War包

2.2.2 防护墙开启8080端口

2.2.3访问jenkins

2.2.4 Jenkins网站的使用

2.2.5 jenkins插件仓库的配置

​2.2.6 工具设置(Java,Maven,Git)

2.2.7 插件的安装

三、Jenkins实现拉取,打包,部署操作

3.1 新建Maven任务

3.2 配置Git仓库地址

3.3 配置打包后的脚本

3.4 配置包所在服务器中的环境和脚本

3.5 提交代码,打包部署

3.6 错误原因查询

3.6.1 查看控制台日志

3.6.2 进程自动结束原因

四、WebHook

4.1 新建任务的触发器

4.2 Git仓库配置WebHook

4.3 测试效果


废话不多说,我们直接开始上手操作!!!

一、环境配置

我们想利用jenkins帮我们自动从git上拉取代码,完成代码的打包,部署,需要一些环境的支持,包括JDK,Maven, git,下面我们来安装和配置一下这些环境。


1.1 JDK环境配置

1.1.1 下载

JDK下载地址:Oracle官网下载JDK

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

这里我们使用的是JDK8,目前Oracle已经开放了JDK17了.............. 

1.1.2 安装

接下来就是安装的步骤:

1. 新建文件夹  /usr/local/java

mkdir /usr/local/java

2. 将压缩包上传到/usr/local/java文件夹中,使用Xshell,Xftp都可以

3. 解压压缩包

tar -zxvf jdk-8u321-linux-x64.tar.gz

4. (可选)这里可以把之前的压缩包删除,也可以不删

rm -rf jdk-8u321-linux-x64.tar.gz

此时文件的目录接口应该是这样的

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 1.1.3 配置环境变量

 1.编辑 /etc/profile文件,在文件的末尾加上如下配置

#java environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_321
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

2.使配置生效

source /etc/profile

1.1.4 测试java配置有没有成功

 在命令行中输入  java -version  显示如下,即表示配置成功

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16


1.2 Maven的安装配置

1.2.1 下载

Maven下载地址:Maven下载

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 1.2.2 安装

同样的,我们重复上面和java一样的操作

1.新建文件夹

mkdir /usr/local/maven

2.上传压缩包到 /usr/local/maven目录下

3.解压

tar -zxvf apache-maven-3.8.4-bin.tar.gz

4.(可选)删除maven压缩包

rm -rf apache-maven-3.8.4-bin.tar.gz

此时,我们的目录结构应该下面这样子的

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_17,color_FFFFFF,t_70,g_se,x_16

 1.2.3 maven的配置

接下来,我们配置一下maven的本地仓库地址以及镜像仓库的地址

vim  /usr/local/maven/apache-maven-3.8.4/conf/settings.xml 

添加如下配置:

在settings标签下添加

<localRepository>/usr/local/maven/repo</localRepository>

在mirrrors标签中将原有的配置删除,添加阿里云的镜像

<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>阿里云公共仓库</name>
	<url>https://maven.aliyun.com/repository/public</url>
</mirror>

配置完成之后,保存并退出  :wq

1.2.4 配置环境变量

编辑 /etc/profile 文件

vim /etc/profile

在末尾添加如下配置

#maven environment
export MAVEN_HOME=/usr/local/maven/apache-maven-3.8.4
export PATH=$PATH:${MAVEN_HOME}/bin

使配置生效

source /etc/profile

1.2.5 检查maven有没有配置成功

输入指令  mvn -v 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 如此,maven也配置成功了


1.3 git的安装

git从yum仓库中下载就可以了

yum install git -y

下载完成之后,查看一下git在什么位置,后面要用到

whereis git

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_17,color_FFFFFF,t_70,g_se,x_16


 二、Jenkins的安装配置

2.1 Jenkins的下载

下载地址:Jenkins下载

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

2.2 使用Jenkins

2.2.1 启动War包

将下载好的War包放入指定文件夹中,我这里是放在了/home/sofrware/jenkins中

使用命令启动war包

nohup java -jar /home/software/jenkins/jenkins.war > jenkins.log

2.2.2 防护墙开启8080端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

如果使用云服务器的小伙伴,可以直接在云服务网站上开启就行了,不需要操作防火墙。

2.2.3访问jenkins

 浏览器访问:主机IP:8080  就可以访问到了,如果不知道主机的IP的话,可以使用

ifconfig

命令查看一下。

2.2.4 Jenkins网站的使用

 刚刚进来,可以看到这个界面

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 这里需要我们输入管理员的密码,这个密码上面已经给出了访问的地址,也可以通过我们之前的jenkins.log日志获取到。

cd /home/software/jenkins
cat jenkins.log

可以看到下面这一段内容

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 只需要把中间的这个密码复制上来就行了。

复制密码,点击继续,可以看到下面的画面

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 我们这里点击安装推荐的插件就可以了,如果有基础的小伙伴,可以选择插件来安装。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 此时正在帮助我们安装插件,过程可能有点漫长,等待就行了。

安装完成后,点击继续,这里如果安装失败了也没问题,后面我们配置了镜像仓库之后,再安装。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 这里会让我们创建一个管理员的账号和密码。

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 这里需要我们设置jenkins的访问地址,如果有公网地址的话,最好用公网地址,没有的话,就默认当前访问的地址就行了。

2.2.5 jenkins插件仓库的配置

 首先我们配置一下插件仓库的地址,不然下载插件的速度太慢了

英文:点击 Manage Jenkins  -> Manage Plugins-> Advance -> Update Site

中文:点击 系统管理 -> 插件管理 -> 高级 -> 升级站点

设置成:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

另外,我们需要修改一下jenkins本地文件的插件仓库地址

cd /root/.jenkins/updates

我们要修改的是default.json文件

sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json 

修改完成之后,需要重启一下jenkins,只需要在地址栏后面加入/restart就可以重启了

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_162.2.6 工具设置(Java,Maven,Git)

进入系统设置 -> 全局工具设置里面

进入Manage Jenkins -> Global Tool Configuration

1. 配置JDK

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

2.配置Git 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 3.配置Maven

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 注意:这里我们要把自动安装的按钮给取消掉,因为之前我们已经安装过所需要的所有环境了

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

2.2.7 插件的安装

自动拉取打包代码需要一些插件的支持,我这里用的是SpringBoot项目,用的是Gitee,所以这里需要安装这两个插件

进入插件管理 -> 可选插件

搜索下面两个插件:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_10,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_15,color_FFFFFF,t_70,g_se,x_16

 点击安装,安装好后重启就行了。如果你们使用的是gitLab,gogs或者是github,只需要安装对应的插件就行了。

重启后,点击新建项目可以在新建任务中看到构建Maven项目

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

三、Jenkins实现拉取,打包,部署操作

3.1 新建Maven任务

输入名称》》勾选“构建一个Maven项目”》》点击确定

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

3.2 配置Git仓库地址

首先需要在Git仓库中新建一个私有的仓库,这里我就不详细展开说了,我这里用的是Gitee,如果不会的小伙伴,自己搜索一下如何使用Gitee.

复制Gitee的地址

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 在Jenkins中粘贴地址,这时候会出现以下的报错

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 因为我们的仓库是私有的,所以,没有账号密码,Jenkins是获取不到你的代码的,我们需要添加一下凭证。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 再回到之前的Git配置地方

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 这样仓库地址就配置Ok了

3.3 配置打包后的脚本

完成上面两步,点击构建之后,其实就可以完成拉代码和打包了

进入jenkins的运行空间内部

cd /root/.jenkins/workspace

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 我们进入到目录里面查看一下

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 可以看到此时jar已经有了,接下来完成的就是让jar能跑起来。

进入jenkins刚刚我们创建的项目的配置中,输入项目打包后的命令

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

在文本框中输入以下内容

#!/bin/bash

echo "开始部署项目..."
DIR="/data/app"
projectName="test-1.0"

echo "移动上个版本的jar..."]
mkdir -p $DIR/backup/${projectName}
if [ -f "$DIR/${projectName}/${projectName}.jar" ];then
	mv $DIR/${projectName}/${projectName}.jar $DIR/backup/${projectName}/${projectName}-`date "+%Y%m%d_%H%M%S"`.jar
fi

echo "移动jar到制定目录..."
cp ${WORKSPACE}/target/*.jar $DIR/${projectName}/${projectName}.jar

sh $DIR/${projectName}/stop.sh
sh $DIR/${projectName}/start.sh

echo "success"

这里的命令含义是:

DIR:项目部署的文件夹,我们要把Jar包移动到这个里面来运行。

projectName:jar包的名称,如果不确定可以在maven项目中指定jar的名字。

if中的内容:判断DIR下的目录内是否已经有了相同名称的JAR,如果有的话,将这里面的Jar给移出去,并在名称后加上时间戳,方便我们做备份

cp后面的内容:将我们构建生成的jar,移动到我们项目的目录内。

sh后面的内容:我们要在项目文件夹中写两个文件,一个是stop.sh,一个是start.sh,stop.sh是把我们之前起的jar服务给关闭,start.sh是将我们的jar启动。

3.4 配置包所在服务器中的环境和脚本

新建项目目录 /data/app

mkdir -p /data/app

根据项目的名称再建三级的文件夹,我这里项目名称是test-1.0

mkdir -p /data/app/test-1.0

进入到该目录内新建两个文件

touch start.sh
touch stop.sh

编辑start.sh

vim start.sh
#!/bin/bash
set -e
set -o pipefail

APP_ID=test-1.0
APP_DIR="/data/app"

nohup /java -jar ${APP_DIR}/${APP_ID}/${APP_ID}.jar > app.log & start_ok=false

编辑stop.sh

vim stop.sh
#!/bin/bash
APP_ID=test-1.0
ps aux | grep ${APP_ID} | grep -v "grep" | awk '{print "kill -9 "$2}' | sh

3.5 提交代码,打包部署

我这里已经建了一个SpringBoot的项目,这里有不懂的小伙伴,可以自学一下,或者直接从网上找。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 端口设置的是9080 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_11,color_FFFFFF,t_70,g_se,x_16

 我们来构建一下,看看能不能访问,别忘了,记得把服务的端口打开,我这里要打开9080这个端口

点击构建

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 试试来访问一下

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

3.6 错误原因查询

这里有些人可能会访问不到,可能的原因有很多,我这里列举几种:

3.6.1 查看控制台日志

在我们的构建信息中,是可以查看到控制台的输出的,如果是脚本错误,或者一些原因,可以通过控制台输出的错误原因进行更改。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

3.6.2 进程自动结束原因

这里还有一种情况,就是控制台并没有报错,但是就是访问不到,还有一种可能的原因就是jenkins在构建完成之后,会自动的把当前进程给杀死,我们这里配置一下不要杀死线程就行了:

在节点管理中配置一下参数:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

新建一个变量:

键:BUILD_ID

值:DontKillMe 

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

四、WebHook

钩子技术,可以帮助我们实现从git提交代码后,Jenkins自动开始拉取代码,并帮助我们打包,然后构建,发布,实现全自动,这里用到的就是钩子技术。

还记得我们之前下载过的一个gitee的插件吗?这里就派上了用场。

4.1 新建任务的触发器

我们继续回到刚刚任务的配置中,找到构建触发器

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

看到此时的这个选项就是插件支持的,如果没有安装插件,这里是没有这个选项的,如果你用的是gitLab、gogs、github这里同样也会有相应的选项。

注意一点,这个选项后面有一个URL地址,并且提醒我们需要在Gitee WebHook中填写。什么意思呢?其实就是,类似于我们做的SpringBoot应用暴露出来的接口,这个接口直接触发刚刚任务的构建,其实就是这么简单。

继续往下翻,可以看到有一个密码的选项,我们这里直接点自动生成

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

4.2 Git仓库配置WebHook

 打开我们的仓库地址,进入到管理页面中去

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 进入到WebHook,或者叫钩子的选项中去

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 输入地址和密码,勾选触发时机

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

4.3 测试效果

我们提交一下代码看看

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

进入Jenkins,可以看到,我们并没有点立即构建,Jenkins自动就开始构建了,甚至可以看到是由哪一个用户触发的构建。 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_20,color_FFFFFF,t_70,g_se,x_16

 测试访问一下,看看能不能访问

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmVmZkhhbl5fXg==,size_19,color_FFFFFF,t_70,g_se,x_16

如此,我们就实现了使用Jenkins自动化部署Maven类型的项目。

下一章节中,我将介绍一下,Maven如何部署前端项目。 

 

在云服务器上自动化部署项目,jenkins和gitee 在编写项目时,很头大的事情就是需要自己手动的上传jar包到服务器上启动。如果出现一点bug,就要重头上传和启动。这是一件很烦的事情,所以,可以使用jenkins和gitee实现项目的自动部署 阅读详情

相关推荐

windows/linux 下Jenkins 配置项目自动构建启动

第一步,点击新建item 输入任务名称,选择Freestyle project,点击确定。 输入项目描述 输入项目git地址,添加 用户凭据,(账号密码或者私匙),输入指定分支,悬着源码库浏览器,默认自动即可。 配置构建触发器,图中的方式是定时任务,轮询, ...

洛阳泰山的博客 4635

jenkins在后台运行

jenkins后台不挂断

abcdefglouy的博客 1858

githook-maven-plugin:Maven插件安装本地git钩子

githook-maven-plugin Maven插件来配置和安装本地git钩子 保护您的VCS 在提交更改之前先检查一下更改始终是一个好主意:运行单元测试,执行构建等。但是,这样的检查列表很容易被忽略,尤其是在大型项目中。 为了摆脱人为因素,应该以某种方式强制和自动化它们。 最好的方法是在项目基础结构级别上执行此类验证。 但是,有时没有基础架构,或者不允许实施该架构。 对于后者,有 。 收听您的VCS 除了预提交和预推钩子之外,还有一些其他钩子可以处理本地VCS事件。 本地git钩子的缺点 这种方法的主要缺点是,挂钩保留在.git目录中,该目录永远不会进入远程存储库。 因此,每个贡献者都必须手动将它们安装在其本地存储库中,这可能会再次被忽略。 那为什么要使用这个插件呢? 因为它解决了向存储库提供挂钩配置的问题,并使它们的安装自动化。 执行 这个想法是在钩子名称和脚本之间保留一个

maven项目配置findbugs插件 使用git钩子控制代码的提交

maven项目配置findbugs插件对代码进行静态检测 当发现代码有bug时,就不让用户commit代码到远程仓库里 没有bug时才可以commit到远程仓库中 (1)新建maven项目 ,配置findbugs插件 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:/...

weixin_30258901的博客 485

将机器人urdf模型转换为Mujoco环境下的mjcf模型

在使用gym环境进行人形模型站立训练的过程中,我想要将之前ros环境下的机器人urdf模型导入到mujoco环境下,这时候就需要将urdf模型转换为mujoco专用的mjcf模型。-AzureLoong.urdf是机器人模型(我这里使用青龙的模型);--custom_robot.xml是转换完成之后的机器人模型的名字和格式;包要求 Python 版本必须是 3.11 或更高),保证自己的其他训练环境和依赖不被干扰。首先将meshes文件迁移到需要输出的目录下,然后再运行转换命令。最后就可以成功输出了。

weixin_44334573的博客 3754

北京联通IPTV组播实战:OpenWRT软路由配置全解析

本文详细解析了在北京联通IPTV环境下,利用OpenWRT软路由和udpxy工具实现组播转单播的实战配置。内容涵盖网络接口设置、防火墙规则、udpxy安装配置、直播源M3U文件处理以及全平台播放指南,帮助用户无需机顶盒即可在家庭局域网内任何设备上流畅观看电视直播。

weixin_29313547的博客 1405

jenkins配置GitLab webhook钩子程序,自动构建代码

将Jenkins构建触发器中提示的URL,配置到gitlab待测试项目的仓库下的webhooks中,保存时提示 “ Urlis blocked: Requests to the local network are not allowed”官方解释:https://docs.gitlab.com/ee/security/webhooks.html,大致意思就是Gitlab 10.6 版本以后为了安全,默认不允许向本地网络发送webhook请求,可以修改默认值。

a13568hki的博客 2278

计算机组成与系统结构(第三版) 袁春风主编 课后习题答案讲解 第一、二章 计算机系统概述 数据的机器级表示

计算机组成与系统结构(第三版) 袁春风主编 课后习题答案讲解 第一、二章 计算机系统概述 数据的机器级表示

qq_73523062的博客 2087

实现自动化构建与集成:Jenkins与SVN整合的指南

enkins是一个流行的开源自动化服务器,可以用于构建、测试和部署软件项目。而SVN则是一个版本控制系统,可以帮助开发人员管理和协调代码。将Jenkins和SVN整合起来,可以实现自动化构建和集成,减少手动操作的错误和时间浪费。此外,整合后还可以轻松管理和跟踪代码变更,方便团队协作和版本控制。此篇文章将详细介绍如何在Jenkins中配置SVN插件,以及如何使用Jenkins集成SVN进行自动化构建和测试

唯有努力,方可自信! 1万+

C# 与欧姆龙 PLC 实战:通过 Ethernet/IP 协议进行设备控制与监控

本文介绍了如何通过C#和Ethernet/IP协议实现与欧姆龙PLC的通信。Ethernet/IP是基于以太网的工业协议,适用于工业设备间的实时数据交换。文章详细讲解了使用EthernetIPSharp库建立连接、读写数据的步骤,并提供了示例代码。此外,还探讨了实时监控、报警系统等高级功能,为工业自动化控制系统开发提供了实用指导。该方法简化了PLC通信开发,提高了系统可靠性和智能化程度。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 811

JavaScript实现量化交易策略(附完整源码)

JavaScript实现量化交易策略(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 721

Jenkins+gitlab实现自动化部署

Jenkins 是一个用 Java 编写的开源自动化工具,带有用于持续集成的插件。用于持续构建和测试您的软件项目,从而使开发人员更容易将更改集成到项目中,并使用户更容易获得新的构建。它还允许您通过与大量测试和部署技术集成来持续交付软件。Jenkins 集成了各种开发生命周期过程,包括构建、文档、测试、打包、模拟、部署、静态分析等等。Jenkins 借助插件实现了持续集成。插件允许集成各种 DevOps 阶段。如果要集成特定工具,则需要安装该工具的插件。例如 Git、Maven、Node 项目等。

空城的博客 5082

倾斜摄影数据转换为3DTile格式的方法:基于CesiumLab GIS

通过使用CesiumLab GIS,倾斜摄影数据可以方便地转换为3DTile格式,并在CesiumJS等3D地理信息可视化工具中进行展示和分析。一旦成功导入3DTile数据,就可以在CesiumLab GIS中利用其强大的可视化和分析功能进行进一步的处理。转换完成后,可以将生成的3DTile数据导入到CesiumLab GIS中进行可视化和分析。启动CesiumLab GIS应用程序,并按照界面上的指导导入转换后的3DTile数据。脚本将开始执行,并将倾斜摄影数据转换为3DTile格式。

ObDjango的博客 1075

jenkins实现持续集成、持续部署

搭建jenkins的四步:①配置钩子,②配置git,③配置maven,④配置构建部署shell。做好这四步其实就ok了。

初心不忘、始终方得 9029

AI测试:手把手教你用AI做Web自动化测试「喂饭教程」

本文介绍了基于MCP协议和使用 mcp-use + playwright-mcp 构建智能Web自动化测试框架的实践方法。通过整合大语言模型的理解能力与测试工具可靠性,该方案支持用自然语言描述测试流程,自动转换为可执行的测试步骤,提升测试效率,支持复杂场景和多步骤流程,为自动化测试提供了新思路。

blues_C的博客 1279

YOLOv9分割训练自己数据和推理训练好模型,并教你使用Labelme工具标注数据(附YOLOv9分割模型结构图),全网最详细教程

YOLOv9 通过研究数据传输时的信息丢失问题,提出了可编程梯度信息(PGI)和通用高效层聚合网络(GELAN)架构,提高了参数利用率和模型性能。与 SOTA 方法相比,GELAN 仅使用传统卷积算子即可实现更好的参数利用率。PGI 适用于从轻型到大型的各种模型,使从头开始训练的模型能够获得更好的结果。YOLOv9 被评价为新的 SOTA 实时目标检测器。接下来本文手把手教你训练自己分割数据集和推理训练好的分割模型。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1491

jenkins + svn + maven +svn 实现当SVN提交代码后自动触发打包部署

主流的开发模式都是采用前后端分离的方式,我们作为coder在功能开发初期需要不断的迭代代码与前端进行联调,提供在容器中最新代码,虽然可以通过在编译器中打完包后在放到容器运行,但是显然这种方式是既不方便的,那么能不能呢使用更加便捷的方式来构建发布程序呢?当然jenkins的出世让我只需要关注代码,当通过svn或git提交新代码后会自动触发部署更新

Myself_Wqx的博客 3089

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Jenkins maven git 多模块自动部署 只发布更新的服务

Jenkins maven git 多模块自动部署 某一模块提交更改只打包发布这个模块和他相关的依赖 考虑下面的场景: 一个Git repository中有6个Java项目A,B,C,D,E,F. A是最底层模块。B依赖A, C,D,E,F又同时依赖A和B。 这时候项目可以分成三层关系。 最近看到这个场景 深思熟虑后发布这个教程,大家多多指教 下载jenkins 官网下载地址 https://www.jenkins.io/download/ nohup java -jar jenkins.war &am

qq_28846039的博客 5895

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jenkins+maven+svn自动化部署

jenkins+maven+svn自动化部署 1.SVN安装 安装 yum -y install subversion 查看版本 svnserve --version 添加svn运行用户 groupadd svn useradd -g svn -s /sbin/nologin svn 添加svn版本库目录,并授权svn用户权限 mkdir -p /opt/svndata chown -R svn.svn /opt/svndata 创建svn版本库 svnadmin create /opt/svn

桀骜浮沉的博客 766

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python自动化部署jenkins_JenKins自动化构建部署流程参考

Jenkins工作流程程序员提交代码到Git/SVN仓库,触发钩子程序向 JenKins 进行通知,Jenkins 调用Git/SVN插件获取源码,调用Maven打包为war包,调用Deploy to web container插件部署到Tomcat服务器。独立还是ServletJenkins可以使用自己的内置Web服务器(Jetty)在自己的进程中独立运行。它也可以作为现有框架中的一个servl...

weixin_39604280的博客 465

Jenkins+git+maven持续集成持续部署java项目(CI/CD)

我们需要借助jenkins自动拉取远程仓库或私服中的代码做持续部署.那么就要下载maven管理本地jar供以java代码运行.一般可以通过执行远程shell脚本. shell脚本编译好删除的内容及项目进程。Jenkins初始化文件路径在下图中: 初始化密码也如图所示。利用jenkins 集成maven快速拉取部署项目。添加上传前置动作.删除之前jar及其进程.Jenkins需要拉取测试远程仓库代码。目的为了解决代码变动自动构建.(安装完毕后 配置全局环境(jenkins全局配置。初始化密码: 如上图。

欢迎来到烟火气知识小天地!这里记录生活、工作中的 “小麻烦”,从软件故障到生活难题,我会毫无保留分享解决思路与方法,愿成为你排忧解难时的温暖参考,伴你在解决问题路上稳步前行。 1912

从零实现DevOps(四):Jenkins+GitLab自动化部署SpringBoot项目(Jenkins本地环境+Jar包模式)

至此,Jenkins结合GitLab实现本地代码自动化部署的功能已经实现,下一期我们会实现远程服务器部署Jar包项目的实例!!!

qq_43090226的博客 2893

Jenkins+gitea实现自动部署

jenkins安装部署: 执行shell命令: 获取jenkins源文件: sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo 导入jenkins公钥 sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key 安装 yum install jenkins 启动.

qq_35128047的博客 4396

Docker+Jenkins实现自动化部署操作步骤

一、前言 二、准备 2.1 采用技术栈 2.2 工作空间目录结构 三、安装Docker 3.1 Docker本体安装 3.2 容器编排工具Docker-Compose安装 3.3 可视化容器管理Portainer安装 3.4 常用命令 四、编写配置Yaml文件 4.1 常用配置项说明 4.2 配置宿主机映射目录 4.3 配置自定义网络 4.4 参考配置yaml 五、安装和配置Jenkins 5.1 初始化及插件安装 5.1.1

小码农的博客 2692

持续部署jar包_基于Jenkins实现项目自动化部署

背景Jenkins是基于Java开发的一种持续集成工具,主要用于持续、自动构建/测试软件项目、监控外部任务的运行,功能包括:持续的软件版本发布/测试项目。监控外部调用执行的工作。为什么使用Jenkins?先来看看一般的后端项目发布流程:1、本地或打包服务器利用maven打成war包2、远程或者SSH连上项目服务器3、停掉tomcat,删除旧包和缓存,将新打的包放进去4、重启tomcat,...

weixin_29011395的博客 1093

Jenkins非常详细的教程四(钩子程序,定时构建实现)

Jenkins入门四-自动化实现前言Jenkins其余博客地址Tomcat删除Jenkins步骤 前言 Jenkins其余博客地址 当前博客为Jenkins终篇,建议看一次之前介绍的内容。对其会有更加深刻的体验,整个Jenkins知识点非常清晰,每一步都有截图内容,方便大家手动操作 Jenkins入门一(简介,安装,初始化) Jenkins入门二(配置Maven,Svn) Jenkins入门三(构建,部署项目) Tomcat删除Jenkins步骤 首先删除Tomcat上部署的Jenkins是因为,我用了其

Daydreamer的博客 2541
上一篇: 【Netty】Netty的使用和原理分析
下一篇: 【Linux】linux下两台机器互相发送文件scp命令,以及配置ssh免密登陆
JeffHan^_^
博客等级 码龄7年 1万+粉丝 134原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值