最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jdk1.8的Jenkins安裝配置實踐

 更新時間:2025年12月12日 14:19:11   作者:無語堵上西樓  
Jenkins是一款流行的開源持續(xù)集成工具,支持自動構(gòu)建、測試和部署,通過Jenkins,開發(fā)團隊可以實現(xiàn)代碼提交后自動進行構(gòu)建、測試,并將構(gòu)建結(jié)果分發(fā)到測試或生產(chǎn)環(huán)境,Jenkins具有易于安裝和配置、豐富的插件支持、消息通知和測試報告等功能,通過配置Jenkins

Jenkins介紹

Jenkins 是一款流行的開源持續(xù)集成(Continuous Integration)工具,廣泛用于項目開發(fā),具有自動化構(gòu)建、測試和部署等功能。官網(wǎng): Jenkins

Jenkins的特征:

  • 開源的 Java語言開發(fā)持續(xù)集成工具,支持持續(xù)集成,持續(xù)部署。

  • 易于安裝部署配置:可通過 yum安裝,或下載war包以及通過docker容器等快速實現(xiàn)安裝部署,可方便web界面配置管理。

  • 消息通知及測試報告:集成 RSS/E-mail通過RSS發(fā)布構(gòu)建結(jié)果或當構(gòu)建完成時通過e-mail通知,生成JUnit/TestNG測試報告。

  • 分布式構(gòu)建:支持 Jenkins能夠讓多臺計算機一起構(gòu)建/測試。

  • 文件識別: Jenkins能夠跟蹤哪次構(gòu)建生成哪些jar,哪次構(gòu)建使用哪個版本的jar等。

  • 豐富的插件支持:支持擴展插件,你可以開發(fā)適合自己團隊使用的工具,如 git,svn,maven,docker等。

Jenkins安裝和持續(xù)集成環(huán)境配置

1 )首先,開發(fā)人員每天進行代碼提交,提交到Git倉庫

2)然后,Jenkins作為持續(xù)集成工具,使用Git工具到Git倉庫拉取代碼到集成服務器,再配合JDK,Maven等軟件完成代碼編譯,代碼測試與審查,測試,打包等工作,在這個過程中每一步出錯,都重新再執(zhí)行一次整個流程。

3)最后,Jenkins把生成的jar或war包分發(fā)到測試服務器或者生產(chǎn)服務器,測試人員或用戶就可以訪問應用。

Jenkins環(huán)境搭建

Jenkins安裝配置

1.采用YUM方式安裝

加入jenkins安裝源:

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

執(zhí)行yum命令安裝:

yum -y install jenkins

2.采用RPM安裝包方式【推薦】

Jenkins安裝包下載地址

wget https://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.346.3-1.1.noarch.rpm

執(zhí)行安裝:

rpm -ivh jenkins-2.346.3-1.1.noarch.rpm

配置:

修改jenkins配置-添加自己的jdk路徑

vim /etc/init.d/jenkins 

修改配置文件:

vi /etc/sysconfig/jenkins

修改內(nèi)容:

# 修改為對應的目標用戶, 這里使用的是root
$JENKINS_USER="root"
# 服務監(jiān)聽端口
JENKINS_PORT="16060"

目錄權(quán)限:

chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins

啟動:

/etc/init.d/jenkins start  #啟動服務
#其他指令
./jenkins stop    #關閉服務
./jenkins restart #重啟服務

如果啟動失敗, 出現(xiàn)錯誤信息:

Starting Jenkins bash: /usr/bin/java: No such file or directory

創(chuàng)建JAVA環(huán)境的軟鏈接:

ln -s /usr/local/jdk/bin/java /usr/bin/java

3.docker安裝

拉取鏡像

docker pull jenkins/jenkins:lts

創(chuàng)建文件夾

mkdir -p /mydata/jenkins_home
chown -R 1000 /mydata/jenkins_home/

運行鏡像

docker run -di --name=jenkins -p 8080:8080 -v /mydata/jenkins_home/:/var/jenkins_home jenkins/jenkins:lts 

4.管理后臺初始化設置

http://192.168.2.4:8080/

需要輸入管理密碼, 在以下位置查看:

#docker安裝
docker logs jenkins 
#yum安裝
cat /var/lib/jenkins/secrets/initialAdminPassword

按默認設置,把建議的插件都安裝上

這一步等待時間較長, 安裝完成之后, 創(chuàng)建管理員用戶:

配置訪問地址:

配置完成之后, 會進行重啟, 之后可以看到管理后臺:

Jenkins插件安裝

在實現(xiàn)持續(xù)集成之前, 需要確保以下插件安裝成功。

  • Maven Integration plugin: Maven 集成管理插件。

  • Docker plugin: Docker集成插件。

  • GitLab Plugin: GitLab集成插件。

  • Publish Over SSH:遠程文件發(fā)布插件。

  • SSH: 遠程腳本執(zhí)行插件。

安裝方法:

進入【系統(tǒng)管理】-【插件管理】

點擊標簽頁的【可選插件】

在過濾框中搜索插件名稱

勾選插件, 點擊直接安裝即可。

注意,如果沒有安裝按鈕,需要更改配置

在安裝插件的高級配置中,修改升級站點的連接為:http://updates.jenkins.io/update-center.jsonhttp://updates.jenkins.io/update-center.jsonhttps://jenkins-zh.gitee.io/update-center-mirror/tsinghua/update-center.json保存

或者從這個網(wǎng)站獲取對應jenkins版本的升級站點

Index of /jenkins/updates/ | 清華大學開源軟件鏡像站 | Tsinghua Open Source Mirror

?

然后到Jenkins安裝服務器上,全局查找

 find / -name default.json

找到后,進入文件目錄,備份該文件

cp default.json default.json.bak

 在同目錄下載該文件,并修改文件名為default.json

# 下載
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-stable-2.346.3/update-center.json --no-check-certificate

 
# 改名
mv update-center.json default.json

Git安裝配置

1.yum 安裝方式

yum -y install git

2.采用源碼包方式安裝

安裝依賴包

yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum -y install gcc perl-ExtUtils-MakeMaker

如果之前有安裝舊版本, 先做卸載, 沒有安裝則忽略

yum remove git

下載源碼包

cd /usr/local
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-1.8.3.1.tar.gz
tar -xvf git-1.8.3.1.tar.gz

也可以安裝其他版本, 地址:Index of /pub/software/scm/git/

編譯安裝

cd git-1.8.3.1
make prefix=/usr/local/git all
make prefix=/usr/local/git install
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc

3.檢查git版本

git version

Maven安裝配置

1.下載安裝包

下載地址: Maven – Download Apache Maven

2.解壓安裝包

cd /usr/local
unzip -o apache-maven-3.6.1-bin.zip 

上傳本地倉庫并解壓

?

3.配置  

環(huán)境變量配置

vi /etc/profile

增加:

export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.1
export PATH=$PATH:$MAVEN_HOME/bin

如果權(quán)限不夠,則需要增加當前目錄的權(quán)限

chmod 777 /usr/local/apache-maven-3.6.1/bin/mvn

修改鏡像倉庫配置:

vi /usr/local/apache-maven-3.6.1/conf/settings.xml

需要把本機的倉庫打包上傳到服務器上(不上傳會自動下載)

然后指定上傳后的倉庫配置

?

Jenkins工具配置

進入【系統(tǒng)管理】--> 【全局工具配置】

?

 MAVEN配置全局設置

?

指定JDK配置  

?

指定MAVEN 目錄

指定DOCKER目錄

?

如果不清楚docker的安裝的目錄,可以使用whereis docker 命令查看docker的安裝的目錄  

SSH配置

進入【系統(tǒng)管理】--> 【憑據(jù)】--> 【全局】

?

添加憑證

?

進入【系統(tǒng)管理】--> 【系統(tǒng)配置】

配置SSH

?

持續(xù)集成應用

應用集成Docker配置

目標:部署的每一個微服務都是先創(chuàng)建docker鏡像后創(chuàng)建對應容器啟動

方式一:本地微服務打包以后上傳到服務器,編寫Dockerfile文件完成。

方式二:使用dockerfile-maven-plugin插件,可以直接把微服務創(chuàng)建為鏡像使用(更省事)

以demo應用為例

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.2</version>
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>demo</description>
    <properties>
        <docker.image>docker_storage</docker.image>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

 

    <build>
        <finalName>heima-leadnews-user</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                    <repository>${docker.image}/${project.artifactId}</repository>
                    <buildArgs>
                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

應用集成Dockerfile文件

# 設置JAVA版本
FROM openjdk:8
# 指定存儲卷, 任何向/tmp寫入的信息都不會記錄到容器存儲層
VOLUME /tmp
# 拷貝運行JAR包
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
# 設置JVM運行參數(shù), 這里限定下內(nèi)存大小,減少開銷
ENV JAVA_OPTS="\
-server \
-Xms256m \
-Xmx512m \
-XX:MetaspaceSize=256m \
-XX:MaxMetaspaceSize=512m"
#空參數(shù),方便創(chuàng)建容器時傳參
ENV PARAMS=""
# 入口點, 執(zhí)行JAVA運行命令
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /app.jar $PARAMS"]

放到與pom同級

?

jenkins應用打包配置

以demo應用為例

1.新建任務

?

?

2.找到自己指定的git倉庫,設置用戶名和密碼

找到自己指定的git倉庫

?

設置gitee用戶和密碼

?

配置gitee

?

3.執(zhí)行maven命令  

?

?

clean install -Dmaven.test.skip=true  dockerfile:build -f pom.xml

注意:根據(jù)自己的實際代碼路徑配置

  • -Dmaven.test.skip=true 跳過測試
  • dockerfile:build 啟動dockerfile插件構(gòu)建容器
  • -f pom.xml 指定需要構(gòu)建的文件(必須是pom)

4.并執(zhí)行shell腳本  

?

?

if [ -n  "$(docker ps -a -f  name=$JOB_NAME  --format '{{.ID}}' )" ]
 then
 #刪除之前的容器
 docker rm -f $(docker ps -a -f  name=$JOB_NAME  --format '{{.ID}}' )
fi
 # 清理鏡像
docker image prune -f 
 # 啟動docker服務
docker run -d --net=host -e PARAMS="--spring.profiles.active=prod"  --name $JOB_NAME docker_storage/$JOB_NAME

5.執(zhí)行日志

拉取代碼

編譯打包

構(gòu)建鏡像

清理容器,創(chuàng)建新的容器

測試

訪問應用

jenkins觸發(fā)器配置

URL觸發(fā)遠程構(gòu)建

觸發(fā)遠程構(gòu)建,修改jenkins的配置,如下

觸發(fā)構(gòu)建url: http://192.168.200.100:16060/job/leadnews-admin/build?token=88888888

其他工程構(gòu)建后觸發(fā)

配置需要觸發(fā)的工程

定時構(gòu)建

定時構(gòu)建( Build periodically)

定時字符串從左往右分別為: 分 時 日 月 周

定時構(gòu)建-定時表達式

定時字符串從左往右分別為: 分 時 日 月 周

組成部分含義取值范圍
第一部分minute (分)0~59
第二部分hour(小時)0~23
第三部分day(天)1~31
第四部分month(月)1~12
第五部分week(周)0~7,0 和 7 都是表示星期天
  • 符號H 表示一個隨機數(shù)
  • 符號* 取值范圍的任意值

案例:

  • 每30分鐘構(gòu)建一次:H/30 * * * * 10:02 10:32
  • 每2個小時構(gòu)建一次: H H/2 * * *
  • 每天的8點,12點,22點,一天構(gòu)建3次: (多個時間點中間用逗號隔開) 0 8,12,22 * * *
  • 每天中午12點定時構(gòu)建一次 H 12 * * *
  • 每天下午18點定時構(gòu)建一次 H 18 * * *

輪詢

輪詢 SCM(Poll SCM)

輪詢SCM,是指定時掃描本地代碼倉庫的代碼是否有變更,如果代碼有變更就觸發(fā)項目構(gòu)建。

Jenkins會定時掃描本地整個項目的代碼,增大系統(tǒng)的開銷,不建議使用。  

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java使用ProcessBuilder?API優(yōu)化流程

    Java使用ProcessBuilder?API優(yōu)化流程

    Java?的?Process?API?為開發(fā)者提供了執(zhí)行操作系統(tǒng)命令的強大功能,這篇文章將詳細介紹如何使用?ProcessBuilder?API?來方便的操作系統(tǒng)命令,需要的可以收藏一下
    2023-06-06
  • SpringBoot?@Scheduled?Cron表達式使用方式

    SpringBoot?@Scheduled?Cron表達式使用方式

    這篇文章主要介紹了SpringBoot?@Scheduled?Cron表達式使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Java輸入流與輸出流超全面講解

    Java輸入流與輸出流超全面講解

    這篇文章主要介紹了關于Java輸入流與輸出流的相關資料,包括它們的定義、作用、最基礎的類和方法,以及如何以其他單位進行讀取,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-05-05
  • Java系統(tǒng)中拆分同步和異步詳解

    Java系統(tǒng)中拆分同步和異步詳解

    這篇文章主要給大家介紹了關于Java系統(tǒng)中拆分同步和異步的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • 淺談java中對集合對象list的幾種循環(huán)訪問

    淺談java中對集合對象list的幾種循環(huán)訪問

    下面小編就為大家?guī)硪黄猨ava中對集合對象list的幾種循環(huán)訪問詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • java中文亂碼之解決URL中文亂碼問題的方法

    java中文亂碼之解決URL中文亂碼問題的方法

    這篇文章主要為大家分享了介紹了java中文亂碼之解決URL中文亂碼問題的方法,感興趣的小伙伴們可以參考一下
    2016-06-06
  • SpringBoot中集成Swagger2及簡單實用

    SpringBoot中集成Swagger2及簡單實用

    使用Swagger你只需要按照它的規(guī)范去定義接口及接口相關的信息,再通過Swagger衍生出來的一系列項目和工具,就可以做到生成各種格式的接口文檔,以及在線接口調(diào)試頁面等等,這篇文章主要介紹了SpringBoot中集成Swagger2,需要的朋友可以參考下
    2023-06-06
  • java對接阿里通義千問的簡單教程

    java對接阿里通義千問的簡單教程

    有的項目可能需要用到直接外部調(diào)用阿里通義千問的接口,下面這篇文章主要介紹了java對接阿里通義千問的簡單教程,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-03-03
  • Spring Boot 實現(xiàn)敏感詞及特殊字符過濾處理

    Spring Boot 實現(xiàn)敏感詞及特殊字符過濾處理

    這篇文章主要介紹了SpringBoot實現(xiàn)敏感詞及特殊字符過濾處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • java堆棧跟蹤工具jstack的使用教程

    java堆棧跟蹤工具jstack的使用教程

    jstack(stack?trace?for?java)是java虛擬機自帶的一種堆棧跟蹤工具,主要用于生成java虛擬機當前時刻的線程快照,下面我們就來學習一下它的具體使用吧
    2023-11-11

最新評論

桂平市| 吉木萨尔县| 祁东县| 丹棱县| 苍溪县| 女性| 邵东县| 宜君县| 樟树市| 平凉市| 垫江县| 石柱| 沙田区| 哈尔滨市| 栾川县| 德钦县| 乌拉特中旗| 大悟县| 冷水江市| 林芝县| 措美县| 华坪县| 深泽县| 延庆县| 称多县| 墨玉县| 旬阳县| 郁南县| 烟台市| 鄢陵县| 崇文区| 旬邑县| 章丘市| 新余市| 沈阳市| 田东县| 维西| 黄石市| 七台河市| 都江堰市| 昆山市|