Java 使用JarInputStream打开jar时,Jenkins上的构建失败
我有一个多模块Maven项目,我正在Jenkins CI服务器上构建。其中一个模块有一些代码,需要打开并扫描其他模块生成的jar 代码从类路径识别jar路径,并使用Java 使用JarInputStream打开jar时,Jenkins上的构建失败,java,maven,jar,jenkins,Java,Maven,Jar,Jenkins,我有一个多模块Maven项目,我正在Jenkins CI服务器上构建。其中一个模块有一些代码,需要打开并扫描其他模块生成的jar 代码从类路径识别jar路径,并使用JarInputStream打开它 jarFile = new JarInputStream(new FileInputStream(jarPath)); JarEntry jarEntry = jarFile.getNextJarEntry(); 此代码是从单元测试调用的。包含此代码的模块依赖于其他模块,因此它是最后生成的
JarInputStream
打开它
jarFile = new JarInputStream(new FileInputStream(jarPath));
JarEntry jarEntry = jarFile.getNextJarEntry();
此代码是从单元测试调用的。包含此代码的模块依赖于其他模块,因此它是最后生成的
此代码在两个不同的开发系统的命令行中成功构建。
我的开发箱运行Maven 3.2.1,Jenkins构建服务器使用Maven 3.0.4
在Jenkins上,代码编译成功,其他测试运行,这表明jar在类路径中可用。但是,当测试试图打开jar时,我得到FileNotFoundException
java.io.FileNotFoundException:/var/lib/jenkins/workspace/project1%20-%20review/project1/target/project1-0.6-SNAPSHOT.jar(没有这样的文件或目录)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(FileInputStream.java:146)
位于java.io.FileInputStream。(FileInputStream.java:101)
该文件实际上存在于工作区中,因为我可以在Jenkins web界面中看到它。使用URL解码器解码URL,或者简单地将Jenkins项目重命名为名称中没有空格哪个模块首先生成?Jenkins框和开发框上的maven版本是什么。@JigarJoshi我更新了问题,它们是相互依赖的。@JohnFarrelly 3.2.1和3.0.4(我更新了问题),如果文件存在,在磁盘上出现故障后,您是否可以立即检查