java - Maven 在 Jenkins 中构建失败,在命令行上成功

标签 java maven jenkins

我们正在 maven 中自定义站点生成,它所做的一件事就是调用 Visio 将一些图表转换为 png。我们使用一个调用 Visio 的 vbs 脚本,通过调用 Process proc = Runtime.getRuntime().exec(command); 从 java 类调用该脚本,其中命令为 cmd/c "cd "C:\Path\To\Module\site\target\staging"&&exportVisioSvg.vbs "C:\Path\To\inFile.vsd""C:\Path\To\outFile.png""

现在这段代码在我自己的机器上执行得很好。 Visio 被调用并生成一个文件。当我在托管 Jenkins 实例的服务器上运行它时,它也能正常工作。当我单独运行该命令时,它工作得很好。最后,当我进入 Jenkins\workspace 并在那里执行 Maven 构建时,它工作得很好。

但是,当我使用完全相同的命令(我复制并粘贴它)在 jenkins 中运行构建时,它不会生成 Visio 图表。其他一切都运行良好,并且当图像不在其应有的位置时,除了我们自己抛出的错误之外,没有堆栈跟踪。进程的退出代码也是 0,并且进程生成的 stdout 或 stderr(Windows 等效项)没有输出,并且它必须完成,否则退出代码将为 -1。超时不是问题,因为它有 50000 毫秒的运行时间,但总是在一秒或更短的时间内返回(您可以看到在调用脚本后立即抛出错误)。

我将 Jenkins 切换为在安装了所有内容的管理员帐户下运行(将其从 SYSTEM 移走),因此它应该有权访问 PATH。

我现在不知道该怎么办。

最佳答案

这听起来像是 Jenkins 常见问题解答之一。检查https://wiki.jenkins-ci.org/display/JENKINS/My+software+builds+on+my+computer+but+not+on+Jenkins特别是在“桌面访问 (Windows)”部分下

关于java - Maven 在 Jenkins 中构建失败,在命令行上成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25457521/

相关文章:

java - 如何在 Netbeans 平台 Maven 插件中找到图像路径

maven - Intellij Idea 忽略 maven 程序集插件

java - 当我的电脑刚刚安装x64 jdk7时,如何使用x86 jdk构建代码

Jenkins Email-ext 插件默认 Jelly 脚本显示所有单元测试,而不仅仅是失败的测试

ios - xcodebuild : Command failed with exit code 65 in Ionic Capacitor Application

java - 重写不是 LiftRules 的成员

java - Android: slider 图像 viewPager 未显示任何内容

PHPSpec 和覆盖率报告

java - 如何从 int 转换为 byte,然后使用位移运算符

Java GUI 空白和空指针异常