Jenkins迁移jobs后项目构建出现java.nio.file.DirectoryNotEmpt

1、首先说一下迁移过程
1)新环境部署Jenkins持续集成环境,这里不在详细说明安装过程;
2)直接把旧的Jenkins家目录下得jobs目录通过scp得方式进行传输到新得环境下;

迁移完成后启动新环境Jenkins服务,构建项目控制台输出如下:

观察控制台输出到最后,项目是构建成功得,而且不影响运行。

2、错误原因
通过Google查找得知有人提交了这个issues,This started happening on a new Jenkins server that a teammate was trying to setup by cloning an existing one, and I found out that he used scp -r to copy the whole working tree and that resulted in the lastSuccessful and lastStable soft-links to get converted to physical directories. I guess Jenkins was trying to remove it like it is a file (which a soft-link is), but since it turned out to be a directory that is not empty, it is causing this exception. When you remove/rename these directories, it clears the path for Jenkins to recreate the soft-links thus solving the problem. 链接详情请移步到:https://issues.jenkins-ci.org/browse/JENKINS-21330
翻译如下:
这开始发生在一个新的Jenkins服务器上,队友试图通过克隆现有的服务器来设置,我发现他使用scp -r来复制整个工作树,这导致了lastSuccessful和lastStable软链接转换为物理目录。我猜Jenkins试图删除它,就像它是一个文件(软链接),但由于它原来是一个非空的目录,它导致了这个异常。当您删除/重命名这些目录时,它会清除Jenkins重新创建软链接的路径,从而解决问题。

3、解决问题
以上我们知道问题所在就很方便得解决问题了,首先登陆到新环境下,删除所有项目得 lastSuccessful 和 lastStable目录:

find jobs/ -type d \( -name "lastSuccessful" -o -name "lastStable" \)  -exec rm -rf {} \;

执行完成之后再次构建项目就不会再出现以上异常了。

原文地址:https://blog.51cto.com/darren88/2401220

时间: 2024-08-04 12:08:51

Jenkins迁移jobs后项目构建出现java.nio.file.DirectoryNotEmpt的相关文章

java.nio.file.InvalidPathException: Illegal char <:>

一.报错: java.nio.file.InvalidPathException: Illegal char <:> at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) at sun.nio.fs.WindowsPathParser.parse(WindowsPathParse

java 7 使用java.nio.file.*操作文件

java7中辅助类Files新增了两个方法用于读去文件的全部行和全部字节.So..再也不用缓冲区了. 1 package java8_test; 2 3 import java.io.IOException; 4 import java.nio.file.Files; 5 import java.nio.file.Path; 6 import java.nio.file.Paths; 7 import java.util.List; 8 9 public class TestMain { 10

docker elasticsearch挂载宿主机报 java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes

① docker启动 es实例 docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" \ -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasti

java.nio.file.Path

public interface Path extends Comparable<Path>, Iterable<Path>, Watchable 1. A Path represents a path that is hierarchical and composed of a sequence of directory and file name elements separated by a special separator or delimiter. 2. A root

jenkins配置以pipeline项目构建项目初体验

官方参考:https://jenkins.io/doc/book/pipeline/官方语法参考:https://jenkins.io/doc/book/pipeline/syntax/脚本:pipeline {    agent any    environment {     def ITEMNAME = "erp"    def DESTPATH = "/home/ops/testpipe"def codePATH="/var/lib/jenkins

java.nio.file.FileSystemException: D:\kafka_2.12-2.1.0\kafka_2.12-2.1.0\logs\__consumer_offsets-30\00000000000000000000.timeindex.cleaned: 另一个程序正在使用此文件,进程无法访问。

在启动kafka时候报错: 原因是因为在logs中文件有问题,那么可以删除配置文件 文件夹下文件,还有就是重新建立一个文件夹 原文地址:https://www.cnblogs.com/xiufengchen/p/10960951.html

jenkins自动发布后启动tomcat失败

jenkins服务器上某个项目构建后执行自己写的shell进行发布,脚本其他步骤都执行正常,唯独,启动tomcat出现问题.  jenkins显示启动tomcat成功.但是在tomcat服务器上查看进程却发现没有后台进程存在. 原因: jenkins在脚本执行完成后,就认为jenkins任务结束了,但是脚本启动的相关子程序仍在运行.由于jenkins认为任务结束,就断开了改构建相关的衍生进程. 这就是为什么shell脚本执完成,显示tomcat启动成功,但是后台没有进程的原因. 解决方案: 在要

Java NIO、NIO.2学习笔记

相关学习资料 http://www.molotang.com/articles/903.html http://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.html 目录 1. NIO.NIO.2简介 2. NIO中的关键技术 1. NIO.NIO.2简介 Java中的输入流.输出流都是阻塞式的输入.输出.不仅如此,传统的输入流.输出流都是通过字节的移动来处理的(即使是字符流,在底层也是通过字节流来进行处理的),也就是说,面向

Java NIO 完全学习笔记(转)

本篇博客依照 Java NIO Tutorial翻译,算是学习 Java NIO 的一个读书笔记.建议大家可以去阅读原文,相信你肯定会受益良多. 1. Java NIO Tutorial Java NIO,被称为新 IO(New IO),是 Java 1.4 引入的,用来替代 IO API的. Java NIO:Channels and Buffers 标准的 Java IO API ,你操作的对象是字节流(byte stream)或者字符流(character stream),而 NIO,你操