Jenkins安装

Jenkins windows 和 liunx的安装自行百度!简单的很  下一步下一步就行了

安装插件

下面介绍实际部署中所用到的几个插件,安装方法:系统管理->管理插件 搜索安装即可。

  • 安装Deploy to container Plugin(自动化部署插件)
  • 安装Maven Integration Plugin(Maven集成插件)
  • 安装Publish Over SSH Plugin(SSH远程发布插件)

jenkins拉取svn代码部署脚本_jenkens

Publish over SSH配置

jenkins拉取svn代码部署脚本_svn_02

Maven配置

jenkins拉取svn代码部署脚本_maven_03

主要就是发布配置详情:

点击新建任务 选择


创建完成之后进行任务配置

jenkins拉取svn代码部署脚本_maven_04

我这里是使用SVN 进行代码托管,如果你们使用git的选择git即可,在使用SVN之前需要先安装Svn插件,完成之后方可进行配置,在配置svn的时候用户、密码会报个错,但是我这里没有进行解决直接连接即可,假如你们遇到Svn相关的错误,自行百度即可!

jenkins拉取svn代码部署脚本_maven_05

配置服务器

1.我在下面选择的是我们之前配置的服务器,Exec command 实在编译之前进行操作,我这里是公司需要进行编译之前备份操作

jenkins拉取svn代码部署脚本_配置文件_06

Build 操作:

1.Root pom 选择pom.xml 表示使用maven 的pom.xml 进行编译

2.Goals and options 是编译命令:

    -P test 表示maven项目中使用的是test环境,因为我的项目中配置了 prd dev test 三个环境

jenkins拉取svn代码部署脚本_maven_07

jenkins拉取svn代码部署脚本_jenkens_08

项目中相关配置
配置文件:

//使用这种方式的时候<profiles> 是配置多个环境

activation 为true表示项目默认使用的配置文件

<activation>
				<activeByDefault>true</activeByDefault>
</activation>
<profiles>
		<profile>
			<id>dev</id>
			<properties>
				<profileActive>dev</profileActive>
			</properties>

			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>test</id>
			<properties>
				<profileActive>test</profileActive>
			</properties>
		</profile>
		<profile>
			<id>prd</id>
			<properties>
				<profileActive>prd</profileActive>
			</properties>
		</profile>
	</profiles>

如果项目中启动出现如下报错,其实他就是不认识yml配置文件中的@符号

found character '@' that cannot start any token. (Do not use @ for indentation)  in 'reader', line 5

解决办法 加上''即可

jenkins拉取svn代码部署脚本_jenkens_09

还需要添加个插件:
添加插件的目的是因为我在配置文件中使用的是  @profileActive@

spring:
  application:
    name: xxx-ssh
  profiles:
    active: '@profileActive@'
<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<configuration>
					<delimiters>@</delimiters>
					<useDefaultDelimiters>false</useDefaultDelimiters>
				</configuration>
			</plugin>
		</plugins>


	</build>

构建完成后操作

jenkins拉取svn代码部署脚本_svn_10

具体命令,可以自行百度,我这里只提供项目中使用到的
 

#!/bin/bash 

PID=`lsof -i:8081| grep LISTEN |awk '{print $2}'` //获取端口号8081的线程pid
echo ${PID}
export BUILD_ID=dontKillMe
if [[ $PID -ge 0 ]];then 
    kill -9 $PID
fi
//执行启动
nohup java -jar /usr/local/test/test-SNAPSHOT.jar > /usr/local/test/testlogs.log 2>&1 &

到这里一个简单的任务差不多就完成了,保存应用即可,回到主页选择你刚刚创建的任务

jenkins拉取svn代码部署脚本_maven_11

可以查看在build时的日志记录

jenkins拉取svn代码部署脚本_jenkens_12

出现SUCCESS 代表项目自动化部署成功,可以到服务器查看文件是否已上传,项目启动可能稍微慢,稍等即可访问,然后如果项目没起来可以查看jar包目录的日志文件

至此!完结!希望能帮组到一些还没配置过的码友们