【问题标题】:Build fails on Jenkins when opening jar with JarInputStream使用 JarInputStream 打开 jar 时在 Jenkins 上构建失败
【发布时间】:2014-06-04 04:59:46
【问题描述】:

我有一个在 Jenkins CI 服务器上构建的多模块 Maven 项目。其中一个模块有一些代码需要打开并扫描其他模块生成的jar。

代码从类路径中识别 jar 路径并使用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 (No such file or directory) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:146) at java.io.FileInputStream.<init>(FileInputStream.java:101)

该文件实际上存在于工作区中,因为我可以在 Jenkins Web 界面中看到它。

【问题讨论】:

  • 先构建哪个模块?
  • 你的詹金斯盒子和你的开发盒子上的maven版本是什么。
  • @JigarJoshi 我更新了问题,它们相互依赖。
  • @JohnFarrelly 3.2.1 和 3.0.4(我更新了问题)
  • 如果文件存在,你能在磁盘上失败后立即检查吗

标签: java maven jar jenkins


【解决方案1】:

使用 URLDecoder 解码 URL 或简单地重命名您的 jenkins 项目,使其名称中没有空格

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多