• 手把手教你搭建Jenkins实现自动化部署Jar


    centeros7 安装配置环境jdk1.8

    1.先卸载centeros自带jdk

    rpm -qa | grep openjdk

    查询出来的自带的openjdk

    2.删除

    rpm -e --nodeps 

    3.再次查询

    rpm -qa | grep jdk  

    手把手教你搭建Jenkins实现自动化部署Jar

    4.在usr/local创建文件夹

    cd /usr/local
    mkdir java

    手把手教你搭建Jenkins实现自动化部署Jar

    5.将jdk1.8放到刚刚创建的文件中

    cd  /usr/local/java

    用xftp上传后解压

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

    手把手教你搭建Jenkins实现自动化部署Jar

    6.进入刚刚解压的文件夹

    cd jdk1.8.0_181/
    pwd      #(这一步记录jdk1.8的路径,一会配置环境用)

    手把手教你搭建Jenkins实现自动化部署Jar

    7.配置环境

    vim /etc/profile

    按i插入下面路径

    export JAVA_HOME=/usr/local/java/jdk1.8.0_181
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin

    按Esc后:wq退出后

    source /etc/profile

    手把手教你搭建Jenkins实现自动化部署Jar

    8.查看是否成功

    java -version

    手把手教你搭建Jenkins实现自动化部署Jar

    maven 环境配置

    1.在/usr/local 下创建maven文件夹

    cd /usr/local
    mkdir maven

    手把手教你搭建Jenkins实现自动化部署Jar

    2.进去新建的文件夹

    cd maven

    上传 apache-maven-3.5.4-bin.zip

    手把手教你搭建Jenkins实现自动化部署Jar

    3.解压

    unzip apache-maven-3.5.4-bin.zip

    手把手教你搭建Jenkins实现自动化部署Jar

    4.进入解压的文件夹

    cd apache-maven-3.5.4/pwd   #(记录下这个路径,一会配置环境用到)

    5.配置环境

    vim /etc/profile

    按i插入下面

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

    按Esc后:wq保存后

    source /etc/profile

    手把手教你搭建Jenkins实现自动化部署Jar

    6.查看是否成功

    mvn -v 

    手把手教你搭建Jenkins实现自动化部署Jar

    centeros7安装git

    yum install git

    一路下来y即可

    查看是否是成功

    git --version

    手把手教你搭建Jenkins实现自动化部署Jar

    查看git命令地址

    which -a git

    到此环境已经搭建好,开始对maven私服,gitlab搭建。

    手把手教你搭建Jenkins实现自动化部署Jar

    gitlab搭建

    1.新建 /etc/yum.repos.d/gitlab-ce.repo

    vim /etc/yum.repos.d/gitlab-ce.repo

    后按下 i 键 插入下面内容

    [gitlab-ce]
    name=Gitlab CE Repository
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
    gpgcheck=0
    enabled=1

    2.

    sudo yum makecache

    sudo yum install gitlab-ce 
    #(安装最新的)      或   sudo yum install gitlab-ce-12.0.4 #(指定版本号)

    3.配置 external_url

    vim /etc/gitlab/gitlab.rb

    修改external_url地址 为: http://本机地址:端口号/

    本机地址查看:ifconfig

    查看端口号运行的应用 lsof -i:端口号

    4.

    gitlab-ctl reconfigure

    5.

    gitlab-ctl restart #启动        

    gitlab-ctl start|stop|status|restart # 其他操作

    6.访问

    http://本机地址:端口号/

    常见问题 gitlab502 : 这个是端口被占用

    确保端口不被占用后从4开始继续来一遍

    centeros7 搭建maven私服

    下载nexus3.x:

    https://www.sonatype.com/download-oss-sonatype

    1.在/usr/local下创建nexus文件

    cd /usr/local
    mkdir nexus
    cd nexus

    手把手教你搭建Jenkins实现自动化部署Jar

    2.上传刚刚下载的nexus压缩包并解压

    tar -zxvf nexus-3.18.1-01-unix.tar.gz 

    手把手教你搭建Jenkins实现自动化部署Jar

    3.

    cd nexus-3.18.1-01/bin/
    ls

    手把手教你搭建Jenkins实现自动化部署Jar

    4.启动

    ./nexus run &

    5.开启远程访问端口

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

    手把手教你搭建Jenkins实现自动化部署Jar

    浏览器访问

    手把手教你搭建Jenkins实现自动化部署Jar

    6.设置开机自启动

    1.创建服务

    vim /usr/lib/systemd/system/nexus.service

    2.按i将下面复制进去

    [Unit] 
    Description=nexus service

    [Service] 
    Type=forking LimitNOFILE=65536 #警告处理
    ExecStart=/usr/local/nexus/nexus-3.7.1-02/bin/nexus start
    ExecReload=/usr/local/nexus/nexus-3.7.1-02/bin/nexus restart
    ExecStop=/usr/local/nexus/nexus-3.7.1-02/bin/nexus stop
    Restart=on-failure

    [Install]
    WantedBy=multi-user.target

    3.将服务加入开机启动

    systemctl enable nexus.service

    4.重新加载配置文件

    systemctl daemon-reload

    手把手教你搭建Jenkins实现自动化部署Jar

    7.运行用户为root (编辑nexus bin下的nexus.rc)

    cd /usr/local/nexus/nexus-3.18.1-01/bin/vim nexus.rc

    内容改为:

    run_as_user="root"

    8.修改nexus3启动时要使用的jdk版本

    cd /usr/local/nexus/nexus-3.18.1-01/bin/
    vim nexus

    按i将下面添加进去

    INSTALL4J_JAVA_HOME_OVERRIDE=/usr/local/java/jdk1.8.0_181   

    手把手教你搭建Jenkins实现自动化部署Jar

    java_home地址可以用echo $JAVA_HOME 输出 (前提是/etc/profile有export)

    9.修改nexus3默认端口

    文件在nexus-xx

    etc/nexus-default.properties

    手把手教你搭建Jenkins实现自动化部署Jar

    手把手教你搭建Jenkins实现自动化部署Jar


    这里已经搭建好了,下面是deploy到私服和从私服上下载下来测试

    1.创建facade 上传到私服

    在/usr下创建projects

    cd  /usr
    mkdir projects

    将改zip解压到projects进入到pom.xml所在目录

    mvn deploy -Dmaven.test.skip=true -U

    手把手教你搭建Jenkins实现自动化部署Jar

    手把手教你搭建Jenkins实现自动化部署Jar

    已经上传成功

    这里要把Allow anonymous users to access the server(允许匿名用户访问服务器)

    因为本地maven没有配置用户

    手把手教你搭建Jenkins实现自动化部署Jar

    也可以用idea maven命令depoly

    <?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>
    
    
        <groupId>com.netease</groupId>
        <artifactId>maven_test_demo</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <!-- 定义常量 -->
        <properties>
            <java.version>1.8</java.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven-compiler-plugin.version>3.6.1</maven-compiler-plugin.version>
            <nexus.host>192.168.20.143:8081</nexus.host>
        </properties>
    
        <!-- 定义deploy私服地址及id (这里的id 应该和maven conf中settings中server标签中的一致)-->
        <distributionManagement>
            <repository>
                <id>nexus-releases</id>
                <name>Nexus Private Release Repository</name>
                <url>http://${nexus.host}/repository/maven-releases</url>
            </repository>
            <snapshotRepository>
                <id>nexus-snapshots</id>
                <name>Nexus Private Snapshot Repository</name>
                <url>http://${nexus.host}/repository/maven-snapshots</url>
            </snapshotRepository>
        </distributionManagement>
    
        <!-- 定义编译: https://blog.csdn.net/jiachunchun/article/details/90235498 -->
        <build>
            <finalName>${project.artifactId}-${project.version}</finalName>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven-compiler-plugin.version}</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <encoding>${project.build.sourceEncoding}</encoding>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    
    </project>

    settings.xml中servers中定义的id一致

    手把手教你搭建Jenkins实现自动化部署Jar

    在settings 添加下面镜像

        <mirror>
            <id>Central</id>
            <url>http://repo1.maven.org/maven2</url>
            <mirrorOf>central</mirrorOf>
        </mirror>

    最后settings文件。到这儿jar包已经可以发布到私服上去了

    再看怎么拉取的

    maven_demo_impl项目的pom.xml

    <?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>
    
    
        <groupId>com.netease</groupId>
        <artifactId>maven_demo_impl</artifactId>
        <version>1.0-SNAPSHOT</version>
    
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.5.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
        <!-- 定义常量 -->
        <properties>
            <java.version>1.8</java.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven-compiler-plugin.version>3.6.1</maven-compiler-plugin.version>
            <nexus.host>192.168.20.143:8081</nexus.host>
            <spring-cloud.version>Finchley.SR1</spring-cloud.version>
        </properties>
    
        <!-- 定义仓库地址 -->
        <repositories>
            <repository>
                <id>nexus-aliyun-repo</id>
                <name>nexus aliyun repo</name>
                <url>http://maven.aliyun.com/nexus/content/groups/public</url>
            </repository>
            <!-- 私服 -->
            <repository>
                <id>maven-public</id>
                <name>maven public</name>
                <url>http://192.168.20.143:8081/repository/maven-public/</url>
            </repository>
        </repositories>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <!-- 依赖 -->
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
            <dependency>
                <groupId>com.netease</groupId>
                <artifactId>maven_test_demo</artifactId>
                <version>1.0.0-SNAPSHOT</version>
            </dependency>
        </dependencies>
    
    
        <build>
          <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
          </plugins>
        </build>
    
    </project>

    配置完成后就会自动去私服下载jar了

    jenkins搭建

    1.查看环境版本

    java -version  #没有的话查看上文jdk1.8安装
    mvn -v   #没有的话查看上文maven安装
    git --version  # 没有的话查看上文git安装

    2.安装jenkenis

    添加Jenkins源:

    sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
    sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

    3.安装

    yum install jenkins

    4.启动

    sudo service jenkins start

    5.访问

    http://ip:8080/             #jenkenis默认是8080

    第一次密码:

    vim /var/lib/jenkins/secrets/initialAdminPassword

    点安装推荐的插件(后面的选择安装不知道安装什么)

    修改jenkins端口

    vim /etc/sysconfig/jenkins

    将JENKINS_PORT="8080" ===> 修改成未占用想修改的端口 JENKINS_PORT="8089"

    重启服务

    service jenkins restart

    遇到的问题:重装了JDK, java地址变了

    启动jenkins报错: Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.

    按提示输入systemctl status jenkins.service

    解决方法:

    1> 查看当前Java的环境变量

    echo $JAVA_HOME

    2> 复制Java的环境变量地址, 编辑/etc/init.d/jenkins文件, 指定位置添加该地址, 后缀附上/bin/java

    vim /etc/init.d/jenkins

    手把手教你搭建Jenkins实现自动化部署Jar

    重点是配置Jenkins:

    1.配置全局jdk maven git

    点Manage Jenkins(系统管理) --> Global Tool Configuaration(全局工具配置)

    1.maven配置:配置settings.xml地址

    手把手教你搭建Jenkins实现自动化部署Jar

    2.配置jdk地址 (可以用echo $JAVA_HOME获取)

    手把手教你搭建Jenkins实现自动化部署Jar

    3.git配置地址 可以用(which -a git查看)

    手把手教你搭建Jenkins实现自动化部署Jar

    4.maven配置地址

    手把手教你搭建Jenkins实现自动化部署Jar

    2.新建任务

    手把手教你搭建Jenkins实现自动化部署Jar

    3.配置任务

    手把手教你搭建Jenkins实现自动化部署Jar

    1.配置源码管理 下面version是gitlab的版本号

    手把手教你搭建Jenkins实现自动化部署Jar

    Repository URL:访问的仓库名称
    Credentials:访问账目密码或者ssh证书
    Branch Specifier (blank for ‘any’):访问的分支,可以多个
    源码库浏览器:选择源码库服务器
    URL:源码仓库url
    Version:源码库服务器版本号

    2.配置构建

    clean compile package install deploy -Dmaven.test.skip=true -U #将jar发布

    手把手教你搭建Jenkins实现自动化部署Jar

    然后应用,配置完成!

    3.在my view(我的视图) -> 找到新建的项目 --> 点击build now(立即构建)

    在构建历史中点击刚刚的构建如下图: #1 : 是构建的id ,控制台输出: 可以看到具体的输出

    手把手教你搭建Jenkins实现自动化部署Jar

    下面是输入日志 可以看到以前拉取到指定的项目master分支

    Started by user root
    Running as SYSTEM
    Building in workspace /var/lib/jenkins/workspace/first
    using credential fad2813a-c894-4386-ae16-11d6e6d349d4
    Cloning the remote Git repository
    Cloning repository http://192.168.20.137:9029/root/wx-ssm.git
    > /usr/local/git/bin/git init /var/lib/jenkins/workspace/first # timeout=10
    Fetching upstream changes from http://192.168.20.137:9029/root/wx-ssm.git
    > /usr/local/git/bin/git --version # timeout=10
    using GIT_ASKPASS to set credentials
    > /usr/local/git/bin/git fetch --tags --progress http://192.168.20.137:9029/root/wx-ssm.git +refs/heads/*:refs/remotes/origin/*
    > /usr/local/git/bin/git config remote.origin.url http://192.168.20.137:9029/root/wx-ssm.git # timeout=10
    > /usr/local/git/bin/git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
    > /usr/local/git/bin/git config remote.origin.url http://192.168.20.137:9029/root/wx-ssm.git # timeout=10
    Fetching upstream changes from http://192.168.20.137:9029/root/wx-ssm.git
    using GIT_ASKPASS to set credentials
    > /usr/local/git/bin/git fetch --tags --progress http://192.168.20.137:9029/root/wx-ssm.git +refs/heads/*:refs/remotes/origin/*
    > /usr/local/git/bin/git rev-parse refs/remotes/origin/master^{commit} # timeout=10
    > /usr/local/git/bin/git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
    Checking out Revision 47d13c3ca0bc12fc0465c3e4c582b2c542276eb6 (refs/remotes/origin/master)
    > /usr/local/git/bin/git config core.sparsecheckout # timeout=10
    > /usr/local/git/bin/git checkout -f 47d13c3ca0bc12fc0465c3e4c582b2c542276eb6
    Commit message: "更新 pom.xml"
    First time build. Skipping changelog.
    [first] $ /project/java/maven/apache-maven-3.6.1/bin/mvn -s /project/java/maven/apache-maven-3.6.1/conf/settings.xml -gs /project/java/maven/apache-maven-3.6.1/conf/settings.xml clean package
    [INFO] Scanning for projects...
    [WARNING]
    [WARNING] Some problems were encountered while building the effective model for com.guojin:gjmetal-wx-ssm:jar:1.0.0.1-SNAPSHOT
    [WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: org.apache.httpcomponents:httpclient:jar -> version (?) vs 4.5.6 @ line 155, column 21
    [WARNING]
    [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
    [WARNING]
    [WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
    [WARNING]
    [INFO]
    [INFO] ---------------------< com.guojin:gjmetal-wx-ssm >----------------------
    [INFO] Building gjmetal-wx-ssm 1.0.0.1-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO]
    [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ gjmetal-wx-ssm ---
    [INFO]
    [INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (pre-test) @ gjmetal-wx-ssm ---
    [INFO] argLine set to -javaagent:/var/lib/jenkins/.m2/repository/org/jacoco/org.jacoco.agent/0.7.9/org.jacoco.agent-0.7.9-runtime.jar=destfile=/var/lib/jenkins/workspace/first/target/jacoco.exec,includes=com.gjmetal.*
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ gjmetal-wx-ssm ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 1 resource
    [INFO]
    [INFO] --- maven-compiler-plugin:3.6.1:compile (default-compile) @ gjmetal-wx-ssm ---
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 27 source files to /var/lib/jenkins/workspace/first/target/classes
    [INFO] -------------------------------------------------------------
    [ERROR] COMPILATION ERROR :
    [INFO] -------------------------------------------------------------
    [ERROR] /var/lib/jenkins/workspace/first/src/main/java/com/gjmetal/Swagger2.java:[4,40] 程序包org.fuelteam.springboot.swagger2不存在
    [ERROR] /var/lib/jenkins/workspace/first/src/main/java/com/gjmetal/Swagger2.java:[21,2] 找不到符号
      符号: 类 EnableSwagger2
    [INFO] 2 errors
    [INFO] -------------------------------------------------------------
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  9.183 s
    [INFO] Finished at: 2019-08-23T17:05:09+08:00
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project gjmetal-wx-ssm: Compilation failure: Compilation failure:
    [ERROR] /var/lib/jenkins/workspace/first/src/main/java/com/gjmetal/Swagger2.java:[4,40] 程序包org.fuelteam.springboot.swagger2不存在
    [ERROR] /var/lib/jenkins/workspace/first/src/main/java/com/gjmetal/Swagger2.java:[21,2] 找不到符号
    [ERROR]   符号: 类 EnableSwagger2
    [ERROR] -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
    Build step 'Invoke top-level Maven targets' marked build as failure
    Finished: FAILURE

    上面报错是项目问题,可以看到已经拉取到项目了。所以要保证项目的正确性。

    下面是正确的两个项目运行实例

    在搭建好gitlab nexus jenkins后实现自动发jar到私服及启动jar项目

    背景: gitlab nexus jenkins都已经完成了

    1.从gitlab下载项目后发布jar到私服

    重新配置gitlab地址:

    手把手教你搭建Jenkins实现自动化部署Jar

    配置maven命令:

    clean compile package install deploy -Dmaven.test.skip=true -U

    手把手教你搭建Jenkins实现自动化部署Jar

    点击build now 然后看控制台输出如下

    Started by user root
    Running as SYSTEM
    Building in workspace /var/lib/jenkins/workspace/maven_home
    using credential fad2813a-c894-4386-ae16-11d6e6d349d4
    > /usr/local/git/bin/git rev-parse --is-inside-work-tree # timeout=10
    Fetching changes from the remote Git repository
    > /usr/local/git/bin/git config remote.origin.url http://192.168.20.143:8083/root/maven_demo.git # timeout=10
    Fetching upstream changes from http://192.168.20.143:8083/root/maven_demo.git
    > /usr/local/git/bin/git --version # timeout=10
    using GIT_ASKPASS to set credentials
    > /usr/local/git/bin/git fetch --tags --progress http://192.168.20.143:8083/root/maven_demo.git +refs/heads/*:refs/remotes/origin/*
    > /usr/local/git/bin/git rev-parse refs/remotes/origin/master^{commit} # timeout=10
    > /usr/local/git/bin/git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
    Checking out Revision a26adc740d331eabe5b0fb2a46b372dbf6673d2c (refs/remotes/origin/master)
    > /usr/local/git/bin/git config core.sparsecheckout # timeout=10
    > /usr/local/git/bin/git checkout -f a26adc740d331eabe5b0fb2a46b372dbf6673d2c
    Commit message: "Update pom.xml"
    > /usr/local/git/bin/git rev-list --no-walk a26adc740d331eabe5b0fb2a46b372dbf6673d2c # timeout=10
    [maven_home] $ /project/java/maven/apache-maven-3.6.1/bin/mvn -s /project/java/maven/apache-maven-3.6.1/conf/settings.xml -gs /project/java/maven/apache-maven-3.6.1/conf/settings.xml clean compile package install deploy -Dmaven.test.skip=true -U
    [INFO] Scanning for projects...
    [INFO]
    [INFO] --------------------< com.netease:maven_test_demo >---------------------
    [INFO] Building maven_test_demo 1.0.0-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO]
    [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven_test_demo ---
    [INFO] Deleting /var/lib/jenkins/workspace/maven_home/target
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven_test_demo ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory /var/lib/jenkins/workspace/maven_home/src/main/resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.6.1:compile (default-compile) @ maven_test_demo ---
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 1 source file to /var/lib/jenkins/workspace/maven_home/target/classes
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven_test_demo ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory /var/lib/jenkins/workspace/maven_home/src/main/resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.6.1:compile (default-compile) @ maven_test_demo ---
    [INFO] Nothing to compile - all classes are up to date
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ maven_test_demo ---
    [INFO] Not copying test resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.6.1:testCompile (default-testCompile) @ maven_test_demo ---
    [INFO] Not compiling test sources
    [INFO]
    [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ maven_test_demo ---
    [INFO] Tests are skipped.
    [INFO]
    [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ maven_test_demo ---
    [INFO] Building jar: /var/lib/jenkins/workspace/maven_home/target/maven_test_demo-1.0.0-SNAPSHOT.jar
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven_test_demo ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory /var/lib/jenkins/workspace/maven_home/src/main/resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.6.1:compile (default-compile) @ maven_test_demo ---
    [INFO] Nothing to compile - all classes are up to date
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ maven_test_demo ---
    [INFO] Not copying test resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.6.1:testCompile (default-testCompile) @ maven_test_demo ---
    [INFO] Not compiling test sources
    [INFO]
    [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ maven_test_demo ---
    [INFO] Tests are skipped.
    [INFO]
    [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ maven_test_demo ---
    [INFO]
    [INFO] --- maven-install-plugin:2.4:install (default-install) @ maven_test_demo ---
    [INFO] Installing /var/lib/jenkins/workspace/maven_home/target/maven_test_demo-1.0.0-SNAPSHOT.jar to /var/lib/jenkins/.m2/repository/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven_test_demo-1.0.0-SNAPSHOT.jar
    [INFO] Installing /var/lib/jenkins/workspace/maven_home/pom.xml to /var/lib/jenkins/.m2/repository/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven_test_demo-1.0.0-SNAPSHOT.pom
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven_test_demo ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory /var/lib/jenkins/workspace/maven_home/src/main/resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.6.1:compile (default-compile) @ maven_test_demo ---
    [INFO] Nothing to compile - all classes are up to date
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ maven_test_demo ---
    [INFO] Not copying test resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.6.1:testCompile (default-testCompile) @ maven_test_demo ---
    [INFO] Not compiling test sources
    [INFO]
    [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ maven_test_demo ---
    [INFO] Tests are skipped.
    [INFO]
    [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ maven_test_demo ---
    [INFO]
    [INFO] --- maven-install-plugin:2.4:install (default-install) @ maven_test_demo ---
    [INFO] Installing /var/lib/jenkins/workspace/maven_home/target/maven_test_demo-1.0.0-SNAPSHOT.jar to /var/lib/jenkins/.m2/repository/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven_test_demo-1.0.0-SNAPSHOT.jar
    [INFO] Installing /var/lib/jenkins/workspace/maven_home/pom.xml to /var/lib/jenkins/.m2/repository/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven_test_demo-1.0.0-SNAPSHOT.pom
    [INFO]
    [INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ maven_test_demo ---
    Downloading from nexus-snapshots: http://192.168.20.143:8081/repository/maven-snapshots/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven-metadata.xml
    Progress (1): 776 B
    
    Downloaded from nexus-snapshots: http://192.168.20.143:8081/repository/maven-snapshots/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven-metadata.xml (776 B at 6.5 kB/s)
    Uploading to nexus-snapshots: http://192.168.20.143:8081/repository/maven-snapshots/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven_test_demo-1.0.0-20190827.062446-3.jar
    Progress (1): 2.6 kB
    
    Uploaded to nexus-snapshots: http://192.168.20.143:8081/repository/maven-snapshots/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven_test_demo-1.0.0-20190827.062446-3.jar (2.6 kB at 13 kB/s)
    Uploading to nexus-snapshots: http://192.168.20.143:8081/repository/maven-snapshots/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven_test_demo-1.0.0-20190827.062446-3.pom
    Progress (1): 2.1 kB
    
    Uploaded to nexus-snapshots: http://192.168.20.143:8081/repository/maven-snapshots/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven_test_demo-1.0.0-20190827.062446-3.pom (2.1 kB at 19 kB/s)
    Downloading from nexus-snapshots: http://192.168.20.143:8081/repository/maven-snapshots/com/netease/maven_test_demo/maven-metadata.xml
    Progress (1): 286 B
    
    Downloaded from nexus-snapshots: http://192.168.20.143:8081/repository/maven-snapshots/com/netease/maven_test_demo/maven-metadata.xml (286 B at 11 kB/s)
    Uploading to nexus-snapshots: http://192.168.20.143:8081/repository/maven-snapshots/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven-metadata.xml
    Progress (1): 776 B
    
    Uploaded to nexus-snapshots: http://192.168.20.143:8081/repository/maven-snapshots/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven-metadata.xml (776 B at 4.6 kB/s)
    Uploading to nexus-snapshots: http://192.168.20.143:8081/repository/maven-snapshots/com/netease/maven_test_demo/maven-metadata.xml
    Progress (1): 286 B
    
    Uploaded to nexus-snapshots: http://192.168.20.143:8081/repository/maven-snapshots/com/netease/maven_test_demo/maven-metadata.xml (286 B at 2.5 kB/s)
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  3.640 s
    [INFO] Finished at: 2019-08-27T14:24:47+08:00
    [INFO] ------------------------------------------------------------------------
    Finished: SUCCESS

    2.将运行的jar发布到指定的机器

    确保jenkins安装了Publish Over SSH插件 Manage Jenkins -> Manage Plugins -> 搜索ssh

    手把手教你搭建Jenkins实现自动化部署Jar

    手把手教你搭建Jenkins实现自动化部署Jar

    然后配置ssh

    手把手教你搭建Jenkins实现自动化部署Jar

    手把手教你搭建Jenkins实现自动化部署Jar

    配置后点击Test Configuration 出现success

    手把手教你搭建Jenkins实现自动化部署Jar

    配置完成后新建Item(项目)只是多加了一个构建后(注意前面的配置要想要的改 : 项目的git地址)

    #最后一个执行的脚本放到的位置是/projects/scripts
    mkdir scripts
    vim run.sh
    #按i将下面内容复制进去
    
    Project_name=$1
    Port_no=$2
    
    
    #echo $Project_name
    #echo $Port_no
    
    
    . /etc/profile
    
    
    # 进入到项目
    cd /projects/$Project_name
    
    
    # 找到原进程,kill
    pid=$(ps -ef | grep java| grep $Project_name|awk -F '[ ]+' '{print $2}')
    kill -9 $pid
    
    
    
    #启动jar
    nohup java -jar $Project_name-1.0-SNAPSHOT.jar --server.port=$Port_no -server -Xmx1000m -Xms1000m -Xmn700m -XX:+UseParallelGC &
    
    echo "starting service..."
    sleep 20
    
    
    #根据重启后是否有当前应用判断启动是否成功
    pid=$(ps -ef | grep java| grep $Project_name|awk -F '[ ]+' '{print $2}')
    #echo $pid
    if [ -z $pid ];then
      echo "启动失败"
      exit 1
    else
      echo $Project_name :  $pid  "SUCCESS"
    fi

    手把手教你搭建Jenkins实现自动化部署Jar

    现在立即构建 查看控制台输出

    Started by user root
    Running as SYSTEM
    Building in workspace /var/lib/jenkins/workspace/maven_demo_impl
    using credential fad2813a-c894-4386-ae16-11d6e6d349d4
    > /usr/local/git/bin/git rev-parse --is-inside-work-tree # timeout=10
    Fetching changes from the remote Git repository
    > /usr/local/git/bin/git config remote.origin.url http://192.168.20.143:8083/root/maven_demo_impl.git # timeout=10
    Fetching upstream changes from http://192.168.20.143:8083/root/maven_demo_impl.git
    > /usr/local/git/bin/git --version # timeout=10
    using GIT_ASKPASS to set credentials
    > /usr/local/git/bin/git fetch --tags --progress http://192.168.20.143:8083/root/maven_demo_impl.git +refs/heads/*:refs/remotes/origin/*
    Seen branch in repository origin/master
    Seen 1 remote branch
    > /usr/local/git/bin/git show-ref --tags -d # timeout=10
    Checking out Revision bf0f9bd981c053359167a0e46e517f4f936c8c98 (origin/master)
    > /usr/local/git/bin/git config core.sparsecheckout # timeout=10
    > /usr/local/git/bin/git checkout -f bf0f9bd981c053359167a0e46e517f4f936c8c98
    Commit message: "Update TestDemoImpl.java"
    > /usr/local/git/bin/git rev-list --no-walk bf0f9bd981c053359167a0e46e517f4f936c8c98 # timeout=10
    [maven_demo_impl] $ /project/java/maven/apache-maven-3.6.1/bin/mvn -s /project/java/maven/apache-maven-3.6.1/conf/settings.xml -gs /project/java/maven/apache-maven-3.6.1/conf/settings.xml clean compile package -Dmaven.test.skip=true -U
    [INFO] Scanning for projects...
    [INFO]
    [INFO] --------------------< com.netease:maven_demo_impl >---------------------
    [INFO] Building maven_demo_impl 1.0-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    Downloading from nexus-aliyun-repo: http://maven.aliyun.com/nexus/content/groups/public/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven-metadata.xml
    Downloading from maven-public: http://192.168.20.143:8081/repository/maven-public/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven-metadata.xml
    Progress (1): 776 B
    
    Downloaded from maven-public: http://192.168.20.143:8081/repository/maven-public/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven-metadata.xml (776 B at 4.2 kB/s)
    Downloading from nexus-aliyun-repo: http://maven.aliyun.com/nexus/content/groups/public/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven_test_demo-1.0.0-20190827.062446-3.pom
    Downloading from maven-public: http://192.168.20.143:8081/repository/maven-public/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven_test_demo-1.0.0-20190827.062446-3.pom
    Progress (1): 2.1 kB
    
    Downloaded from maven-public: http://192.168.20.143:8081/repository/maven-public/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven_test_demo-1.0.0-20190827.062446-3.pom (2.1 kB at 47 kB/s)
    Downloading from maven-public: http://192.168.20.143:8081/repository/maven-public/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven_test_demo-1.0.0-20190827.062446-3.jar
    Progress (1): 2.6 kB
    
    Downloaded from maven-public: http://192.168.20.143:8081/repository/maven-public/com/netease/maven_test_demo/1.0.0-SNAPSHOT/maven_test_demo-1.0.0-20190827.062446-3.jar (2.6 kB at 67 kB/s)
    [INFO]
    [INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @ maven_demo_impl ---
    [INFO] Deleting /var/lib/jenkins/workspace/maven_demo_impl/target
    [INFO]
    [INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ maven_demo_impl ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 1 resource
    [INFO] Copying 0 resource
    [INFO]
    [INFO] --- maven-compiler-plugin:3.6.1:compile (default-compile) @ maven_demo_impl ---
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 2 source files to /var/lib/jenkins/workspace/maven_demo_impl/target/classes
    [INFO]
    [INFO] --- maven-resources-plugin:3.0.2:resources (default-resources) @ maven_demo_impl ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 1 resource
    [INFO] Copying 0 resource
    [INFO]
    [INFO] --- maven-compiler-plugin:3.6.1:compile (default-compile) @ maven_demo_impl ---
    [INFO] Nothing to compile - all classes are up to date
    [INFO]
    [INFO] --- maven-resources-plugin:3.0.2:testResources (default-testResources) @ maven_demo_impl ---
    [INFO] Not copying test resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.6.1:testCompile (default-testCompile) @ maven_demo_impl ---
    [INFO] Not compiling test sources
    [INFO]
    [INFO] --- maven-surefire-plugin:2.21.0:test (default-test) @ maven_demo_impl ---
    [INFO] Tests are skipped.
    [INFO]
    [INFO] --- maven-jar-plugin:3.0.2:jar (default-jar) @ maven_demo_impl ---
    [INFO] Building jar: /var/lib/jenkins/workspace/maven_demo_impl/target/maven_demo_impl-1.0-SNAPSHOT.jar
    [INFO]
    [INFO] --- spring-boot-maven-plugin:2.0.5.RELEASE:repackage (default) @ maven_demo_impl ---
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  11.163 s
    [INFO] Finished at: 2019-08-27T15:00:40+08:00
    [INFO] ------------------------------------------------------------------------
    SSH: Connecting from host [localhost.localdomain]
    SSH: Connecting with configuration [192.168.20.143] ...
    SSH: EXEC: STDOUT/STDERR from command [sh /projects/scripts/run.sh maven_demo_impl 10010] ...
    starting service...
    nohup: 把输出追加到"nohup.out"
    maven_demo_impl : 4406 SUCCESS
    SSH: EXEC: completed after 20,262 ms
    SSH: Disconnecting configuration [192.168.20.143] ...
    SSH: Transferred 1 file(s)
    Finished: SUCCESS

    手把手教你搭建Jenkins实现自动化部署Jar

    手把手教你搭建Jenkins实现自动化部署Jar

    可以看到ssh已经有jar 并运行了。

    推荐阅读(点击即可跳转阅读)

    1. SpringBoot内容聚合

    2. 面试题内容聚合

    3. 设计模式内容聚合

    4. Mybatis内容聚合

    5. 多线程内容聚合

  • 相关阅读:
    5分钟速成C++14多线程编程
    Vue+element UI穿梭框使用
    element后台项目列表删除最后一项显示无数据
    vue+element 列表一列条件渲染
    百分比布局实现div自动换行
    store.js(一款好用的本地存储插件)的使用
    Vue开发h5或者小程序由px转换rem
    Vue中使用android和ios手机打开相机并选择相册功能和图片旋转问题
    js正则表达身份证姓名和身份证号码
    Vue中h5三个下拉框实现省级联动
  • 原文地址:https://www.cnblogs.com/javazhiyin/p/11571553.html
Copyright © 2020-2023  润新知