Jinkins打包项目成jar(Web-ui形式)

一、环境说明

所需服务器:

SVN服务器;

Jenkins服务器;

代码运行服务器;

服务器环境要求:

SVN服务器:无

Jenkins服务器:jdk、maven

运行服务器:jdk

执行步骤:

编写Java代码;

代码上传SVN;

Jenkins从SVN拉取代码,编译构建后,推送到运行服务器上并运行;

执行说明:

测试项目DemoApplication上传到svn的仓库p2中,jenkins通过Subversion插件从svn中拉取代码,通过Maven Intergration插件配置pom.xml文件位置和要执行的构建命令,最后通过Publish Over SSH插件将构建好的jar包通过ssh上传到目标服务器的指定文件夹中。

二、Jenkins服务器搭建

2.1 JDK安装

下载

yum install -y java-devel

配置环境变量(vi /etc/profile)

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH

刷新环境变量

source /etc/profile

2.2 Maven安装

maven官网下载tar.gz压缩包,在linux上解压

解压命令

tar -zxvf <apache-maven-xxx.tar.gz>

 配置环境变量

export MAVEN_HOME=/opt/maven/apache-maven-3.9.6
export PATH=$MAVEN_HOME/bin:$PATH

刷新环境变量

source /etc/profile

修改maven配置文件

// 配置本地仓库
<localRepository>/opt/maven/repository</localRepository>
// 配置阿里云镜像,要在<mirrors>标签里
    <mirror>
      <id>aliyun-maven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven mirror</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>

2.3 Jenkins安装

参考连接:

Centos7安装jenkins-WAR方式-CSDN博客文章浏览阅读219次,点赞6次,收藏4次。Jenkins运行需要jdk环境支持,如果jdk的版本不对,可能会导致运行时出现无法预料的问题。https://blog.csdn.net/null_of_error/article/details/136006814?spm=1001.2014.3001.5501

官方下载war包(2.346.1版,适配jdk8)

War Jenkins Packagesicon-default.png?t=N7T8https://get.jenkins.io/war-stable/

后台运行

nohup java -jar jenkins.war --httpPort=8080 &

浏览器访问(解锁jenkins)

 http://ip:port

 安装插件

Subversion 2.15.5

Localization:Chinese 1.0.24

Credentials

Maven Intergration 3.22

Publish Over SSH 1.24

2.4 Jenkins配置JDK环境

在【Manage Jenkins】->【Gloal Tool Configuration】-> 【JDK】下,新增jdk。

2.5 Jenkins配置Maven环境

在【Manage Jenkins】->【Gloal Tool Configuration】-> 【Maven】下,新增maven。

2.6 Jenkins配置SSH服务器

在【Manage Jenkins】->【Configure System】-> 【SSH Servers】下,配置运行服务器信息,点击高级按钮,登录配置密码。RemoteDirectory代表要把jar包传递到哪个目录(后面会用到这个配置,不要忘了)。

三、SVN服务器搭建

参考连接

centos7安装svn-CSDN博客文章浏览阅读153次。1.列出所有与svn相关的软件包2.删除软件包。https://blog.csdn.net/null_of_error/article/details/136000706?spm=1001.2014.3001.5501

四、运行服务器搭建

 4.1 JDK环境配置

 下载

yum install -y java-devel

配置环境变量(vi /etc/profile)

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH

刷新环境变量

source /etc/profile

五、Jenkins打包流程

5.1 编写测试代码DemoApplication

代码结构:

pom.xml

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.3.RELEASE</version>
    </parent>
    <packaging>jar</packaging>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

DemoApplication.java

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

HelloController.java

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello(){
        return "hello ," + new Date();
    }
}

application.properties

server.port=8080

5.2 上传代码到SVN

5.3 Jenkins新建Item

选择【新建一个maven项目】

5.4 Jenkins配置SVN地址

在【源码管理】中,选择subversion,填入URL和用户账号

5.5 Jenkins配置Build

在【Build】中,配置pom.xml所在位置,和要执行的maven命令

clean package

5.6 Jenkins配置Post Steps

在【Post Steps】中选择【send files or execute commands over SSH】

  • 在【Name】中选择前面配置的SSH服务器;
  • 在【Source file】中选择要传输的文件;(可以在服务器的/root/.jenkins/workspace中查看到新建的Item,如果没有就先执行一下任务的build。进入Item中可以看到jenkins使用Maven插件构建的代码目录,在target中选择要传输的文件即可。jenkins会从你创建的Item目录开始查找,本文中是Project1,你只需要写相对路径即可。)

  • 在【Remove prefix】中配置去除的前缀;(即默认SSH传输的文件是带目录结构的。如本文中的target/DemoApplactaion.jar,传递到SSH服务器将会是/opt/test/target/DemoApplication.jar。去除target前缀后,就会是/opt/test/DemoApplication.jar。(其中/opt是3.6节配置的,/test是下面【Remote directory配置的】
  • 【Exec command】配置文件传输的SSH服务器后,要执行的命令,这里是启动jar;

使用以下命令,指定日志的存储路径,可以避免命令行卡顿导致任务执行失败

nohup java -jar /opt/test/DemoApplication-*.jar >app.log 2>&1 &

5.7 Jenkins配置Pre Steps

选择Send files or execute commands over SSH,

执行linux中的shell脚本,杀死进程、删除jar包和日志文件。

clean.sh

#!/bin/bash

#获取脚本传入的第一个变量
AppName=$1
if [ -z $AppName ]
    then
	echo '应用名称不能为空'
	exit 1
fi

#获取pid
pid=`ps -ef | grep $AppName | grep 'java -jar' | awk '{printf $2}'`

#使用-z判断pid是否为空
if [ -z $pid ];
    then
	echo "$AppName not running..."
	exit 1
    else
	kill -9 $pid
	echo "$AppName stoping..."
fi

#查询是否真正kill掉
check=`ps -ef | grep -w $pid | grep 'java -jar'`
if [ -z $check ]
    then
	echo "$AppName sotpped!"
    else
	echo "sotp $AppName failed!"
fi

#删除历史数据
rm -rf DemoApplication-*.jar
rm -rf nohup.out

5.8 执行构建

参考视频 

【尚硅谷】Jenkins教程(从配置到实战)_哔哩哔哩_bilibili

  • 28
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值