一
场景
jenkins稳定运行一段时间后,服务器磁盘接近90%,查看服务器知./jenkins文件巨大
解决方案
丢弃旧的构建,jenkins会按时间(天)和数量保留
二
场景
新建maven项目
--platform
--api
--bean
--core
注意问题
1.源码管理中, repository url指向maven父模块的资源路径;即svn://192.168.1.1/svn/feature/platform
2.构建后操作中, jenkins Source files 默认路径是/root/.jenkins/workspace,在传输配置中的Source files的路径指向是相对默认路径的相对路径,所以我们需要加入子模块的文件名;即api/target/api.jar、api/target/bean.jar、api/target/core.jar
三
场景
Jenkins 自动构建svn管理项目有滞后性,提交后立刻发布不能更新到最新代码
原因
Jenkins 默认对svn的代码使用按时间方式进行更新,当遇到Jenkins服务器时间与SVN服务器时间不一致的情况下,就会出现不会更新到最新代码
解决
源码管理中,repository url 指向的最后追加@HEAD,jenkins 会使用版本号方式进行更新,就可以提交后立刻发布并确保代码最新
四
场景
Jenkins 发布失败Exec exit status not zero. Status [-1]
ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [-1]]
原因
Jenkins 在构建后操作执行重启脚本restart.sh中,关闭旧进程的脚本“太暴力”
pid=`ps -ef | grep my_program_name | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
此处的ps -ef未加java的过滤,会把jenkins发起的SSH执行进程也杀掉,导致-1非正常中断。
解决
应加grep “java”过滤
pid=`ps -ef | grep my_program_name |grep "java"| awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi