赞
踩
clean package -U -Dmaven.test.skip=true
#删除之前的jar包
rm -rf /webserver/javashop/lib/hys-nhms-admin.jar
#把jar包移动到指定目录,这里要注意:默认所处位置是在workspace下的当前项目文件夹下,即在xxx项目下
cp -rf /root/.jenkins/workspace/xxx项目/xxx模块/target/xxx.jar /webserver/javashop/lib
#进入指定目录
cd /webserver/javashop/lib
#阻止jenkins杀死项目进程
export BUILD_ID=dontKillMe
#执行启动脚本(没有脚本可以执行启动命令:nohup java -jar xxx.jar &)
./start-nobackup.sh
如果不加设置,就会遇到这种情况,看着任务构建完成了、项目启动命令也执行了,但是访问是确发现“没有启动”!
其实不是没有启动,而是刚启动、进程就被kill掉了,日志如下图
解决方式就是像我上面一样,在执行启动命令(或者运行启动脚本)前,标记这个进程不要杀
#阻止jenkins杀死项目进程
export BUILD_ID=dontKillMe
这前4步完全一样
通过ssh把jar传到指定服务器,然后运行启动命令;需要安装Publish over SSH这个插件。
添加一个Send files or execute commands over ssh,并完成下图配置
通过上面的配置,将文件传到指定文件夹下除
0)补充:如何配置sshserver
Configure System中找SSH Servers,新增完成配置
注:name用中文会变成16进制,最好用英文、数字
1)但这里还是有问题,我其实想传到/webserver/nuohua/lib下;但是它默认传到/root下,jar包就到了/root/webserver/nuohua/lib下;可能是当前服务器用户的权限问题,也可能是jenkins配置问题,不知道怎么解决,就先放到这儿了,有知道的同学麻烦留言指导一下。
2)另外还有一点需要注意,在Exec command中配置jar传输完成要执行的命令。
我这里是要执行启动脚本,放在/root/webserver/nuohua/lib文件夹下;因此,需要先进入指定文件夹,再执行命令
cd /root/webserver/nuohua/lib/
./start-nobackup.sh
总的来说还是版本问题。
java.lang.ClassNotFoundException: org.apache.commons.digester.Digester
这是因为jenkins以前的digester早就不维护了,在新版本中已将它移除;需要升级subversion插件,到新版本(2.15.4及以后),就好了。
我这里报
Could not find artifact:jdk.tools:jdk.tools:jar:1.8 at .../com/alibaba/druid/1.2.11/lib/openjdk-1.8-tools.jar
我时通过降低druid版本解决的这个问题,从1.2.11降到了1.2.5。
# 参考
npm install
rm -rf ./dist/*
npm run build:prod
rm -rf uipc.tar.gz
tar -zcvf uipc.tar.gz dist/*
echo '打包完毕'
和后端类似
# 参考
rm -rf /webserver/javashop/ui/admin/*
cd /root/webserver/nhms/ui/pc
tar -zxvf uipc.tar.gz
cp -rf ./dist/* /webserver/javashop/ui/admin
rm -rf uipc.tar.gz
rm -rf dist
echo '部署完毕'
我的这个问题,是由于我们这个项目前端只有一套代码,前端开发也没有作生产、测试两套配置;又由于生产、测试的路径不一样,所以平时他们打包都是先改成测试的路径、打包好再改回去。上图的问题是由于路径不对引起的错误,这个不是jenkins配置的问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。