自动化部署入门Git+Nexus+SonarQube+Hudson

CI/CD工具选型实战指南:Jenkins、GitLab CI与Buildbot深度对比 CI/CD(持续集成与持续交付)是现代软件工程的核心实践,其本质是将代码变更自动化地转化为可验证、可部署的软件制品。实现这一目标依赖于调度引擎、执行环境、状态追踪与反馈闭环四大能力。不同工具在插件生态、YAML契约性、原子性保障等维度存在根本差异:Jenkins以Groovy脚本和1800+插件提供高度灵活性,但也带来离线安装插件、插件依赖冲突等运维负担;GitLab CI通过.gitlab-ci.yml实现声明式编排,但缓存失效、Runner资源争抢等问题频发;Buildbot则凭借Python原生配置与 阅读详情

自动化部署的优点就不在这里赘述了,本文意在入门。软件都多少有一些权限等配置,这些请大家自行查找,如果实在找不到可以留言。

环境:

两台CentOS,且都配置jre
ip分别为:
- 192.168.199.61 作为CI服务器
- 192.168.199.60 应用服务器

OS:
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# head -n 1 /etc/issue
CentOS release 6.2 (Final)

安装Git,Tomcat

//安装步骤略,网上太多了,大家参考下。

需要注意的是Tomcat的配置

1.移除/root/hudson-tomcat/webapps 目录下的所有文件:
# rm -rf /root/hudson-tomcat/webapps/*
2.将 Tomcat 容器的编码设为 UTF-8:
# vi /root/hudson-tomcat/conf/server.xml

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

如果不把 Tomcat 容器的编码设为 UTF-8,在以后配置 Hudson 是提示
3.设置 hudson-tomcat 的内存

# vi /root/hudson-tomcat/bin/catalina.sh 

#!/bin/sh 下面增加: 
JAVA_OPTS='-Xms512m -Xmx2048m'

配置iptables策略

策略我提前说,为的是之后就不说了。因为后面的多个系统每对外暴露的端口都需要在其中增加策略,所以一起说了,具体策略属于哪个系统,看注释,也建议大家都写注释,否则策略太多,分不清哪个是哪个了。iptables位置是/etc/sysconfig/iptables

[root@ci ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
#############以下为新增##############
# nexus
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT
# sonar
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
# hudson
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
# zookeeper
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
#############以上 END ##############
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

安装maven

由于Hudson和maven最新版集成的时候有bug,所以我们使用apache-maven-3.0.5

[root@ci ~]# wget https://archive.apache.org/dist/maven/maven-3/3.0.4/binaries/apache-maven-3.0.4-bin.tar.gz
[root@ci ~]# tar -zxvf apache-maven-3.0.4-bin.tar.gz
[root@ci ~]# cd apache-maven-3.0.4/conf/
[root@ci ~]# vim settings.xml ##配置文件,参考nexus安装

安装Nexus

一句话介绍:
Maven中央仓库的私服,也就是本地仓库和中央仓库之间的我们自己架设的仓库。
参考 安装Nexus

安装SonarQube

一句话介绍:
是一款自动化质量管理系统
前提:已安装 JDK8 并配置好了环境变量,安装完MySQL 可以参考源码编译安装MySQL

[root@ci ~]# java -version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
##下载
[root@ci ~]# wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.zip
##解压安装:
[root@ci ~]# unzip sonarqube-5.6.zip
[root@ci ~]# mv sonarqube-5.6.zip sonarqube
##编辑 sonar 配置:
[root@ci ~]# cd sonarqube/conf/
[root@ci ~]# vi sonar.properties
sonar.jdbc.username=root
sonar.jdbc.password=root

#----- MySQL 5.x sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterE ncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.web.host=0.0.0.0
sonar.web.context=/sonarqube 
sonar.web.port=9000
##保存以上配置(注意,要看看默认的 9000 端口是否已被占用)
##防火墙中打开 9000 端口:
[root@ci ~]# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT #重启防火墙,使端口配置生效
[root@ci ~]# service iptables restart
启动 SonarQube Web Server
[root@ci ~]# /root/sonarqube/bin/linux-x86-64/sonar.sh start (初次启动会自动建表和做相应的初始化)
浏览器中输入:http://192.168.199.61:9090/sonarqube/

登录,默认用户名/密码为 admin/admin
在选择菜单 配置–>系统–>更新中心–>available中分别安装PMD,Checkstyle,Cobertura,Chinese Pack这些常用插件。

Maven 分析器插件的配置与使用

http://docs.sonarqube.org/display/SONAR/Installing+and+Configuring+Maven
在 Maven 本地库中的 settings.xml(我这里是 settings_edu.xml)配置文件中的 节点中添加如下配置:

        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- Example for MySQL-->
                <sonar.jdbc.url>
                    jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&amp;characterEncoding=utf8
                </sonar.jdbc.url>
                <sonar.jdbc.username>root</sonar.jdbc.username>
                <sonar.jdbc.password>root</sonar.jdbc.password>

                <!-- Optional URL to server. Default value is http://localhost:9000 -->
                <sonar.host.url>
                    http://192.168.199.61:9000/sonar
                </sonar.host.url>
            </properties>
        </profile>

使用 Maven 分析器进行分析

命令:
纯 Maven 命令:mvn clean install sonar:sonar
如果你是第一次运行此命令,看执行日志你会发现它会先下载 sonar-runner 等插件,成功执行完分析命令后便可到 Web Server 中查看代码质量分析结果数据。

至此,所有安装准备工作已完成,接下来需要配置Hudson来进行自动化构建。

安装Hudson

安装Hudson和部署一个web项目一样简单。所以直接下载Hudson的war包即可。
Hudson 只是一个持续集成服务器(持续集成工具),要想搭建一套完整的持续集成管理平台, 还需要用到Git、Maven、Sonar 等工具,按需求整合。

[root@ci ~]# mv hudson-3.3.3.war ~/download/
[root@ci ~]#   cd ../bin/
[root@ci bin]# pwd
/root/download/tomcat/bin
[root@ci ~]#   ./startup.sh 

Hudson的默认工作空间

/root/.hudson/jobs 就是构建完后的所有项目
/root/.hudson/jobs/项目/workspace/target 每个项目构建完成后的文件 jar或者war或者等等。

[root@ci .hudson]# pwd
/root/.hudson
[root@ci .hudson]# cd jobs
[root@ci jobs]# ll
total 32
drwxr-x---. 5 root root 4096 Jul  5 01:13 service-common
drwxr-x---. 5 root root 4096 Jul  5 01:13 service-common-config
drwxr-x---. 5 root root 4096 Jul  5 01:13 service-common-core
drwxr-x---. 5 root root 4096 Jul  5 01:13 service-common-web
drwxr-x---. 5 root root 4096 Jul  5 01:13 service-parent
... ...
[root@ci jobs]# cd service-common-core/
[root@ci service-common-core]# ll
total 28
drwxr-x---. 6 root root 4096 Jul  1 09:56 builds
-rw-r-----. 1 root root 5300 Jul  5 01:13 config.xml
... ...
drwxr-x---. 5 root root 4096 Jul  1 08:21 workspace
[root@ci service-common-core]# cd workspace/
[root@ci workspace]# ll
total 16
-rw-r-----.  1 root root 3669 Jul  1 08:21 pom.xml
-rw-r-----.  1 root root   39 Jul  1 08:21 README.md
drwxr-x---.  4 root root 4096 Jul  1 08:21 src
drwxr-x---. 11 root root 4096 Jul  1 08:22 target
[root@ci workspace]# cd target/
[root@ci target]# ll
total 60
drwxr-x---. 3 root root  4096 Jul  1 08:22 classes
... ...
-rw-r-----. 1 root root 23516 Jul  1 09:54 service-common-core-1.0-SNAPSHOT.jar
drwxr-x---. 2 root root  4096 Jul  1 09:56 sonar

配置 HudsonHome(可选)

这一步是为了建立自定义的Hudson工作空间目录,到时候找项目target的时候需要,如果没配置就按上面说的位置(/root/.hudson)查找。

在/root 目录下创建 HudsonHome 目录,并配置到环境变量 
[root@ci ~]# mkdir HudsonHome
切换到 root 用户,在/etc/profile 中配置全局环境变量
[root@ci ~]# vi /etc/profile 
## hudson env
export HUDSON_HOME=/root/HudsonHome
[root@ci ~]# source /etc/profile

Hudson配置

初始化配置

访问 http://192.168.199.61:8080/hudson-3.3.3 进入初始化界面。
选择

√ Hudson BIRT Charts Plugin
√ JNA Native Support Plugin
√ XPath Provider Plugin

然后install
初始化安装需要安装 3 个默认勾选中的插件(如上图红色部分),其它插件可以等初始 化安装完成之后再选择安装。 点击“Install”安装按钮后,需要等待一会时间才能安装完成。安装完成后按“Finish”按钮。 安装的插件保存在 /root/HudsonHome/plugins 目录。

安全配置

初始化完成后就会进行 Hudson 的配置管理界面:
1.启动安全配置
菜单:系统管理–>Configure Security–> Enable security [save]
2.配置Access Control
菜单:系统管理–>Configure Security

Access Control:
        Security Realm:
        √ Hudson专有用户数据库
        √ 允许用户注册   √ Notify user of Hudson account creation
        Authorization
        √ 安全矩阵
        admin 所有复选框全勾选 #这里是需要在下面文本框中输入admin的。
        匿名用户 只勾选所有read项

配置完Access Control后直接[save]。
3.注册超管
菜单:右上角 注册–>Sign up 填写完信息后,邮箱最好是真实常用的。 [Sign up] 按钮完成
4.系统设置
菜单:系统管理–>系统设置
4.1.配置系统信息、JDK、Maven,sonar和SSH 需要安装插件后再配置。否则没有配置项。

Instance Tag(Hudson自定义系统名称) : 牛X系统CI服务器
系统消息:一段系统描述
执行者数量:2
生成前等待时间:5
SCM签出重试次数:2

√ 防止跨站点请求伪造
    Crumbs
        Crumb Algorithm
         √ Default Crumb Issuer
         √ Enable proxy compatibility
JDK
    JDK 安装
        别名:openjdk-1.8.0
        JAVA_HOME:/usr/lib/jvm/java-1.8.0-openjdk.x86_64
Git
    Git 安装
        Name:Default
        Path to Git executable:git
Maven
    Maven 安装
        Name:maven-3.0.5
        MAVEN_HOME:/root/download/apache-maven-3.0.5
Sonar  #在 Hudson 中配置 SonarQube 链接
    Sonar installations
    Name:sonar5.6
    Server URL:http://192.168.199.61:9000/sonar
    Sonar account login:admin
    Sonar account password:admin
    Server Public URL:http://192.168.199.61:9000/sonar
    Database URL:jdbc:mysql://192.168.199.131:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatement s=true&useConfigs=maxPerformance
    Database login:root
    Database password:root
    Database driver:com.mysql.jdbc.Driver
邮件通知
    SMTP服务器:smtp.163.com
    系统管理员邮件地址:xxxx@163.com
    Hudson URL:http://192.168.199.61:8080/hudson-3.3.3/
    √ 使用SMTP认证
    用户名:xxxx@163.com
    密码:xxxx
    SMTP端口:25
    Charset:UTF-8
SSH Servers 
    #我配置了一台远程机器,如果是多项目的化,以此类推,在构建项目选项的时候就会让我们选择是发布到哪台机器上
    Name:192.168.199.60_product-provider
    Hostname:192.168.199.60
    Username:root
    Remote Directory:/root
    √ Use password authentication, or use a different key 使用密码
    Passphrase / Password:root
    Port:22
    Timeout:300000
    #配置完后记得用[Test configuration]button测试一下,如果是success就OK啦。

插件安装

结合我们想要实现的持续集成功能,需要安装如下几个插件。如想集成更多功能,自行 添加插件并配置则可。(注意:现在我们使用了 SonarQube 质量管理平台,则不再需要在 Hudson 中单独去安装 CheckStyle、Findbugs、PMD、Cobertura 等 Sonar 中已有的插件) 逐个搜索你想要安装的插件并点击安装,安装完之后重启 Hudson。
菜单:系统管理–>管理插件–>available–>search
输入 sonar 搜索出

√ Sonar Plugin
  TusarNotifier

选择Sonar Plugin 然后[install]就安装成功,然后会提示restart,[restart]后即可完成一个插件的安装。
我们需要通过以上方法安装如下几个插件:

√ Sonar Plugin
√ Hudson GIT plugin
√ Publish Over SSH
√ Hudson SSH plugin

Hudson 的使用

添加项目(maven为例)

菜单:新建任务
任务名称: xxxxx
√ 构建一个Maven 2/3 (Legacy)项目
[OK]进入Job Configurations

Project name:测试项目名称
Cascading Job:none
Description:产品api实现
√ Discard Old Builds #保留50次历史记录
Days to keep builds:50
Max # of builds to keep:50
Source Code Management
    Git
        Repositories--URL of repository:git@xxxxxxx.git
        Branches to build--Branch Specifier (blank for default):master
Build Triggers #触发动作,被谁触发
    Build after other jobs are built #在另一个项目构建之后自动构建。如果是独立的项目,这里就不需要配置了
        Jobs names:service-xxxxx-api
    Poll SCM #规则可参考linux 的 crontab 规则
        Schedule:* * * * *  #每分钟检查git是否有变化
Build
    Root POM:pom.xml
    Goals and options:install #要执行的命令
Build Settings
    √ E-mail Notification
    √ Send e-mail for every unstable build
Post-build Actions:
    √ Sonar
    Send build artifacts over SSH
        SSH Publishers
            Name: #这个就是刚才系统设置里增加的ssh server,选择一个目标机器即可。
            Transfers
                #这个地址是hudson每个项目的地址中的target,参考安装hudson那个小节
                Source files:target/service-product-core.jar,target/lib/*
                Remove prefix:target #前缀
                #这个地址要注意了,配置远程ssh server的时候有一个Remote Directory:/root
                #此处的Remote directory是相对那个地址而言的,也就是那个地址下的路径
                #最终会将service-product-core.jar发送到 远程的/root/xiaoshoujia/service/product目录下
                Remote directory:xiaoshoujia/service/product
                #在远程机器执行的脚本,这个脚本已经在远程的目录下了。如果是war包,参考附件service-restart.sh 脚本
                Exec command:/root/xiaoshoujia/service/product/service-product.sh

最后[save]保存构建配置。

构建流程

这样,构建一个项目包括
1.项目名称及描述
2.要拉取的Git地址
3.有无触发条件
4.pom文件
5.sonar的质量检测
6.异常邮件提醒
7.以及构建完后要发送的远程服务器目录
8.最终执行远程服务器的脚本,启动应用

执行构建

配置完后,在主界面就可以看到Jobs Status下面是一个个新建的任务。
最后上个图吧
Jobs Status
紫色的框中光盘按钮是执行构建,黄色的框中是Console 命令行输出。

至此超级简单的配置和使用就完成了。当然配置和构建过程可能还有很多小问题需要大家去解决,如果有问题直接留言即可。

shell脚本附件

service-restart.sh

path: /home/xiaoshoujia/tomcat/bin/service-restart.sh

#!/bin/sh
#java env
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre

APP_NAME=topsales-coss
WORK_DIR=/home/xiaoshoujia/webapps/$APP_NAME
TOMCAT_HOME=/home/xiaoshoujia/tomcat-coss

echo "==== clean webapps ====="
rm -rf $WORK_DIR/*
rm -rf $TOMCAT_HOME/work/*

#这一句的前提是将项目war已经发送到这个目录
unzip -q ~/$APP_NAME.war -d $WORK_DIR

echo "==== restart tomcat ====="
## restart tomcat
$TOMCAT_HOME/bin/shutdown.sh

sleep 5

$TOMCAT_HOME/bin/startup.sh

如果无法正常shutdown,可以参考以下方法:
修改catalina.sh和shutdown.sh,
catalina.sh增加CATALINA_PID文件,

if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then
  . "$CATALINA_BASE/bin/setenv.sh"
elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then
  . "$CATALINA_HOME/bin/setenv.sh"
fi
###--------只增加以下这一句
export CATALINA_PID="$CATALINA_HOME/catalina_pid"

# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin; then

shutdown.sh增加-force参数

#在执行stop时增加 -force 
exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"

强制停止tomcat脚本

如果以上方法无法停止你的tomcat,可以尝试如下:

project_name="boss"
env_type="prod1"
##判断环境
if [ ${env_type} != "prod1" ]; then
    exit 0
fi

~/apache-tomcat-${project_name}/bin/shutdown.sh
sleep 5s
##查看tomcat pid
tomcat_pid=`ps -ef|grep ${project_name}|grep -v grep|grep -v vi|grep -v less|grep -v more|awk '{print $2}'`
echo ${tomcat_pid}
##如果有pid 就执行kill -9 
[ -n "${tomcat_pid}" ] && kill -9 ${tomcat_pid}
##清理相关目录
rm -rf ~/apache-tomcat-${project_name}/work/*
rm -rf ~/mywebapps/${project_name}
unzip -q ~/${project_name}.war -d ~/mywebapps/${project_name}
~/apache-tomcat-${project_name}/bin/startup.sh

service-product.sh

#!/bin/sh

## java env
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre

## service name
APP_NAME=product

SERVICE_DIR=/home/xiaoshoujia/xiaoshoujia/service/$APP_NAME
SERVICE_NAME=service-$APP_NAME-core
JAR_NAME=$SERVICE_NAME\.jar
PID=$SERVICE_NAME\.pid

cd $SERVICE_DIR

case "$1" in

    start)
        nohup $JRE_HOME/bin/java -Xms256m -Xmx512m -jar $JAR_NAME >$SERVICE_DIR/service.log 2>$SERVICE_DIR/service_err.log &
        echo $! > $SERVICE_DIR/$PID
        echo "=== start $SERVICE_NAME"
        ;;

    stop)
        kill `cat $SERVICE_DIR/$PID`
        rm -rf $SERVICE_DIR/$PID
        echo "=== stop $SERVICE_NAME"

        sleep 5
        P_ID=`ps -ef | grep -w "$SERVICE_NAME" | grep -v "grep" | awk '{print $2}'`
        if [ "$P_ID" == "" ]; then
            echo "=== $SERVICE_NAME process not exists or stop success"
        else
            echo "=== $SERVICE_NAME process pid is:$P_ID"
            echo "=== begin kill $SERVICE_NAME process, pid is:$P_ID"
            kill -9 $P_ID
        fi
        ;;

    restart)
        $0 stop
        sleep 2
        $0 start
        echo "=== restart $SERVICE_NAME"
        ;;

    *)
        ## restart
        $0 stop
        sleep 2
        $0 start
        ;;
esac
exit 0
jenkins+ SonarQube(代码质量测试)从gitlab拉取若依代码进行检测 SonarQube支持多种开发语言,包括但不限于Java、Python、PHP、JavaScript、CSS、C、C++、Go等,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞等问题。其检测范围涵盖了从细微的样式选择到设计错误等多个方面,可以确保代码可靠性,减少技术债务。SonarQube具有多种功能特性,例如能够结合静态和动态分析工具,持续扫描项目的代码质量;与用户的开发工作流程集成,实现跨项目分支和拉取请求的持续代码检查;提供项目代码质量报告,使开发人员能够更清楚地了解代码的健康状况。 阅读详情

相关推荐

持续集成篇_08_Hudson持续集成服务器的使用(远程自动化部署)

持续集成服务器远程自动化部署

君子敏于行而讷于言 1万+

Hudson配置和自动化构建部署项目

Hudson配置和自动化部署项目Hudson持续集成需要安装的插件系统设置构建MAVEN项目需要启动的jar或者war工程自动化部署 Hudson持续集成 Hudson是一个持续集成平台(升级版使用Jerkins),目前已经集成了SVN多库管理,Maven私有库,代码质量检测平台Sonarqube (目前使用的是7.2版本,需要对应的JDK版本是1.8版本) 需要安装的插件 Hudson需要的安装...

weixin_39276868的博客 571

hudson自动化部署配置

Hudson是一款可扩展的持续集成(Continuous Integration)引擎。 1.1 主要作用: (1)自动化地构建软件项目。 (2)构建可持续的自动化检查 (3)构建可持续的自动化测试 (4)构建成功后,后续过程的自动化,监控一些定时执行的任务

Nexus私服CentOS环境部署【第一期】

大家好,我是你们的好朋友猿仁,这期给大家带来Nexus部署教学

qq_45518774的博客 308

从圆形到椭圆:CenterNet中高斯热图半径的自适应优化策略

本文深入探讨了CenterNet目标检测模型中高斯热图生成策略的优化,针对传统圆形高斯核在处理长宽比差异大目标时的局限性,提出了自适应椭圆高斯核的解决方案。通过数学推导和代码实战,详细阐述了如何根据目标边界框尺寸动态计算椭圆长短轴半径,生成更贴合目标几何形状的热图监督信号,从而有效提升模型,尤其是对无人机、车辆等不规则目标的定位精度。

alice7model的博客 985

Visual studio 2013 配置 Halcon 13 (非抄袭)

Visual studio 2013 配置 Halcon 13.0.2.2 (其他版本适用) 针对网上抄袭的配置方法均不可用,写了一篇亲试可行的配制方法。如下: 1.下载Halcon安装后(C:\Program Files\MVTec\HALCON-13.0) 添加环境变量,(按下win按键,键入“环境变量”,出现 “编辑系统环境变量”后按下enter即可打开,下方找到“环境变量”按钮)的系...

huyanjackson的专栏 1042

部署Jenkins+GitLab+Maven+Nexus+SonarQube持续集成环境

一、相关概念介绍: 持续(Continuous):不断地获取反馈、响应反馈 集成(Integration):编译、打包、测试 部署(Deployment):应用组件或基本设施的代码或配置变更在产品环境生效 发布(Release):具有业务影响的功能变化对最终用户可见 交付(Delivery):可以理解为从Deployment到Release之间的阶段,强调的是一种能力,开发有能力频繁部署,业务有能力随时发布 Jenkins:开源的、可扩展的、基于Web界面的持续集成平台 Git:开源的分布式版本控制系统

BTYE的博客 2116

Android13 CarPowerManagementService启动流程分析

在CarPowerManagementService中init调用PowerHalService的setListener设置事件侦听器以接收车辆的电源事件。

liuning1985622的博客 956

Jenkins集成Sonar Qube

前文目录 Jenkins安装部署使用_南宫乘风的博客-优快云博客 Jenkins入门配置_南宫乘风的博客-优快云博客 Sonar Qube介绍 Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题。 Sonar Qube可以与多种软件整合进行代码扫描,比如Maven,Gradle,Git,Jenkins等,并且会将代码检测结果推送回Sonar Qube并且在系统

南宫乘风-Linux运维-虚拟化容器-Python编程 ownit.top 1万+

保姆级教程:用CellOracle 0.10.13从单细胞数据构建基因调控网络(附完整代码)

本文提供了一份详细的CellOracle 0.10.13使用指南,帮助用户从单细胞数据构建基因调控网络。通过Python接口,即使是生物信息学新手也能快速掌握数据准备、KNN插补、GRN计算及可视化等关键步骤。文章包含完整代码和实用技巧,助力单细胞转录组数据分析。

weixin_42563415的博客 722

TSC条码打印机C#例程(tsclib.dll调用) 【转】

//----program.cs using System;using System.Collections.Generic;using System.Windows.Forms; using System.Runtime.InteropServices;public class TSCLIB_DLL{[DllImport("TSCLIB.dll", EntryPoint = "abou...

weixin_33843947的博客 2441

sonarqube安装以及jenkins集成sonarqube

docker 方式安装是最简便的,我选择了这个安装方式1、下载镜像2、 创建挂载目录3、运行容器4、通过ip 端口访问:http://ip:9090。

javascript_good的博客 3706

【RTD】AD7793驱动程序

AD7793完整驱动程序,支持两线、三线、四线RTD。

只要思想不滑坡,想法总比问题多。 6175

一文教你玩转SonarQube平台搭建(超详细,图文并茂)

一、简介 SonarQube介绍 SonarQube是一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。同时,它提供了丰富的插件,支持多种语言的检测,如Java、Python、Groovy、C、C++等几十种编程语言的检测。它主要的核心价值体现在如下几个方面: (1)检查代码是否遵循编程标准:如命名规范,编写的规范等。 (2)检查设计存在的潜在缺陷:SonarQube通过插件Findbugs、Checkstyle等工具检测代码存在的缺陷。 ...

3208

14、5G物理层的灵活解决方案:广义频分复用(GFDM)

广义频分复用(GFDM)作为一种高度灵活的5G物理层多载波调制方案,能够满足多样化应用场景的需求,包括高吞吐量的比特管道通信、低功耗高连接数的物联网、超低延迟的触觉互联网以及广覆盖的无线区域网。通过参数化配置,GFDM可适配LTE资源网格,实现与现有系统的兼容与共存。其支持多种解调方式、干扰消除技术、OQAM映射及预编码机制,兼具低带外发射、高频谱效率和强鲁棒性。GFDM还能统一描述OFDM、FBMC、FTN等多种经典与先进波形,成为5G及未来通信系统中极具潜力的通用波形框架。

gold8的专栏 108

2025华为od面试手撕代码【求字符串表达式结果】

2025华为od面试手撕代码【求字符串表达式结果】

MISAYAONE的博客 1351

Sonarqube+Gitlab,实现Sonarqube通过GitLab登录

sonarqueb实现gitlab登录配置

nierongjie的博客 2774

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Jenkins集成SonarQube代码质量检测

SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误。

Wielun 3401

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Jenkins 集成 SonarQube 代码静态检查使用说明

通过以上步骤,可实现 Jenkins 与 SonarQube 的自动化代码质量检查,支持多种语言静态分析。

demonlg0112的博客 1803

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

gitlab +SonarQube +git hooks 代码审查一站式配置

gitlab CI + sonarqube + git hooks 配置

Qian_Chi的博客 4051

hudson maven svn 搭建+自动部署

hudson+maven+svn搭建环境,并自动化部署

xiao__miao的博客 1829

Hudson之——Hudson的使用(使用 Hudson 来自动化编译、分析、打包、发布、部署项目)

添加项目 edu-common-parent为所有项目的父级项目,没有任务Java代码,如果项目中有Java代码,则与上述配置稍微有点区别,具体看下面的步骤。

冰河的专栏 9837

自动化代码质量检测平台sonarqube搭建及使用,以及集成gitlab ci提交自动返回结果

Sonar (SonarQube)是一个开源平台,用于管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持java, JavaScrip, Scala 等等二十几种编程语言的代码质量管理与检测。SonarQube®是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码异味。它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查。原理架构,这里不多说了,网上一大把,咱们直接开干就完了。

You can walk as far as you want. 2231

全链路 DevOps 实战:基于 Jenkins、GitLab、Prometheus 与 SonarQube 的持续集成、部署、监控与优化

想要安装Jenkins就必须先安装Java查看java -version然后去拉取安装包然后安装安装完成后查看状态浏览器访问一下本机地址去它给的文件中获取密码登录前者会安装大量的插件,对于我们学习测试来说,先选择后者点击后者后,依旧会有一些推荐插件,先不安装。点击上方的“无”,然后点击最下面的“安装”由于会有一个默认admin用户,所以先使用默认不用填写,点击下方“使用admin账户继续”下一步,保存并完成然后开始使用由于没有安装任何插件,所以界面简洁。

2302_79276567的博客 1262

hudson自动化配置小结

进来为了方便项目部署,同时不想每次都打包上传部署新版本,所以想到用hadson做自动化部署工具。下面就说下在配置过程中遇到的问题和解决办法。花了一天的时间搞下,反正还是很郁闷,每次我都会碰到别人碰不到的问题。所以记录下来。 首先你需要在服务器上面配置一个tomcat服务器,直接去下载hadson.war包,放在webapp下面,启动tomcat就好。hadson.war可自行百度下载就好。同时服

u011322089的专栏 2002

Jenkins流水线集成Sonarqube

1 环境准备1.1 安装sonarqube/app/module/sonarqube1.2 安装sonar-scanner/app/module/sonar-scanner1.3 安装SonarQube Scanner插件略1.4 Jenkins配置sonar凭据1.5 Jenkins配置Sonarqube服务地址1.6 ...

cnzzs的博客 1790
上一篇: 搭建sonatype nexus 2.18.X时遇到的SSLException错误
下一篇: Spring+Mybatis透明实现读写分离
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值