最近在使用公司的jenkins进行自动部署项目,由于之前没有用过,一直半生不熟,因此特意写个随机记录。
1.登录jenkins服务
jenkins安装好后,我们通过浏览器访问它的主页(如下),输入用户名和密码进行登录。
2.建立新的项目
由于这是公司的服务器,因此上面之前已经安装好了几个其他的项目,这次我是需要建立一个新的项目,因此点击箭头所指的“New Item”
3.输入项目名称,并选择项目类型。
我这里为了方便自由配置,选择了第一个“Freestyle project”
4.配置相关内容
#每次项目更新,构建时候抛弃之前旧的构建,最大记录数设置为20.
#配置使用的JDK,有时候服务器上有多个版本JDK,最好是我们自己指定版本,以防出现版本错误的情况。
#配置版本控制器,由于我使用的是SVN,因此这里配置的是项目的SVN地址,下方Credentials是验证信息
#配置完版本控制后,在下方选择“Always check out a fresh copy”,以保证每次构建项目都是最新代码,而且不需要我们进行手动同步。
#配置MAVEN信息。我这里使用的maven构建项目,包括编译打包发布等,因此这里配置MAVEN的相关信息,"Goals"配置的是maven的打包指令,先clean旧文件,再install新文件,同时-Dskip Tests跳过测试。
同时我们还添加了一个“Execute shell”,里面一共有两句话:
“BUILD_ID=DONTKILLME”:这里是因为jenkins会存在杀死衍生进程的情况,配置这条命令可以阻止它乱杀。
“sh /******/**.sh”:sh命令不用多说了,就是运行sh文件的意思。我这里编写了一个运行脚本,maven打包之后,由这个脚本来运行jar。
#下面的内容纯粹就是分享一下我的这个脚本
内容比较简单,就是先检查程序是否在运行中,如果是,就先强行杀死程序(kipp -9)。
由于maven的install指令将jar安装在了maven仓库中,我们直接从仓库将项目包cp到指定的目录下。
然后通过java指令启动jar文件。
tomcat_pid=`ps -ef | grep java | grep autopayment-data.jar |awk '{print $2}'`
echo $tomcat_pid
if [ -n "$tomcat_pid" ]; then
echo "Current autopayment-data Pid:" ${tomcat_pid}
kill -9 ${tomcat_pid}
echo "This autopayment-data Had Shutdown!"
fi
echo "Now autopayment-data Is Starting To Publish..."
#curl -X POST http://localhost:9070/autopayment/shutdown
rm -rf /u01/autopayment-data/autopayment-data.jar
cp /usr/local/mvnRespo/com/hrtpayment/autopayment-data/1.0-SNAPSHOT/autopayment-data-1.0-SNAPSHOT.jar /u01/autopayment-data/autopayment-data.jar
echo "start autopayment-data ....."
cd /u01/autopayment-data
nohup java -jar -Xmx1024m -Xms256m -Xmn128m -Xss256k -XX:MaxPermSize=512m -Dfile.encoding=UTF-8 /u01/autopayment-data/autopayment-data.jar --spring.profiles.active=dev &
到此,我们的自动构建项目已经配置完成。