当前位置: 首页 > 知识库问答 >
问题:

构建失败...使用ant脚本在jenkins中创建war文件时

邵阳
2023-03-14

我已经成功地在svn中检入的java项目的根目录下添加了build.xml。

现在,下面是jenkin构建的控制台输出

  1. 复制
    /var/lib/jenkins/workspace/FinalWar/WebContent/WEB-INF/WEB。xml转换为
    /var/lib/jenkins/workspace/FinalWar/build/WebContent/WEB-INF/WEB。xml
  2. 文件副本已完成。war:创建war文件…然后
  3. 在/var/lib/jenkins/workspace/FinalWar/BUILD中构建失败。xml:39:
  4. 部署描述符:<br>/var/lib/jenkins/workspace/FinalWar/build/WEB-INF/WEB。xml不存在*

我的问题是,在复制[步骤1] web.xml时,它被复制到build/WEB content/we b-INF/WEB . XML

但是在创造战争的同时,为什么它要搜索[步骤4] /build/WEB-INF/web.xml

共有2个答案

黄昊英
2023-03-14

首先,您需要确定这是Jenkins问题还是构建本身的问题。

  1. 它是否在您的机器上构建。如果没有,则您的构建本身存在问题。
  2. 如果它在您的计算机上构建,请执行以下操作:
    1. 禁用正在生成的项目。你不希望詹金斯在你玩的时候突然开始建造。
    2. 在 Jenkins 中,该项目中有一个工作区文件夹。进入该文件夹,看看最终战争/构建/网络内容/网络-INF/网络.xml是否真的存在。如果不是,则生成本身.xml可能存在错误。如果是这样...
    3. 登录到詹金斯服务器
    4. 进入 Jenkins 主目录,然后进入作业,然后进入项目名称,然后进入工作区。这是詹金斯运行构建的地方。
    5. 尝试在此处进行构建。您可能需要设置$PATH才能选择正确的 Ant 版本和要使用的 JDK。

    Jenkins不会对构建做任何不寻常的事情。它像您从命令行一样运行Ant。事实上,如果您查看控制台输出,您甚至会看到Jenkins使用的命令行。

    Jenkins中可能存在构建失败的问题,但在命令行上不会。通常,您会看到Jenkins声明BUILD SUCCESSFUL,但在几行之后才声明它失败。这通常是由于错误配置的构建后过程——例如,您尝试归档不存在的工件,或显示不存在的XML文件中的测试结果。

    大多数时候,失败的Jenkins构建是由于构建本身有问题,并且没有完全按照您想要的去做。当构建失败时,第一件事就是在您的本地机器上进行干净的签出,并尝试构建。如果这有效,请尝试从Jenkins构建服务器上的< code>workspace运行构建。

    此外,在构建服务器上使用工作区之前,请禁用Jenkins项目(不要忘记在完成后重新启用)。这样,Jenkins就不会在你分析出了什么问题的时候弄乱工作空间。

汪皓
2023-03-14

检查路径...您正在将其复制到build/WebContent/WEB-INF并尝试从build/WEB-INF读取...通过包含WebContent更正读取路径。

 类似资料:
  • 我有一个时髦的脚本,可以推广代码。长话短说,我知道在那个脚本中的某个时间点它是否成功。如果不成功,我想使构建失败。有没有办法在时髦中失败构建? 示例: 在“执行 Groovy 脚本”插件中。您可以编写代码。 其中“checkPromote”根据升级的状态返回true或false值。

  • 问题内容: 我想标记一个詹金斯构建失败,例如: 通过Shell脚本可以吗? 答: 如果我们以整数1退出,则Jenkins构建将被标记为失败。因此,我用替换了注释以解决此问题。 问题答案: 您需要做的就是退出1。

  • 我已经在Eclipse中创建了示例/默认测试Web项目。 我想知道: 包含哪些WAR文件及其目录结构?哪些是可选的和必需的文件/文件夹? 通过Ant build.xml创建和战争的任务语法 我读了所以回答答案1和答案2,但在我的项目中帮不上忙。

  • 我有一台Windows机器作为Jenkins奴隶。使用Groovy脚本我需要实现以下内容: 1) 在 Jenkins 从属服务器上创建一个文件夹 2) 将文件从本地机器复制到 Jenkins 从属 3)修改Jenkins上的PATH变量

  • 如何使用Ant(bb Ant工具)将JAR文件编译成COD?i、 e.没有其他源文件 最终,我需要一个在构建过程中运行Jar-Jar链接(jarjar)的脚本,以解决在多个应用程序中使用sdk的名称空间问题。Jarjar接受一个JAR文件作为输入,我认为它输出一个JAR文件。 因此,要在bb-ant-ool构建中运行jarjar,我需要知道如何将输出JAR编译成COD。 我只关注问题的这一部分,以

  • ----maven-enforcer-plugin:1.0.1:enforce(default)@cli---添加ignore:org.eclipse.jetty.spdy.* ----maven-enforcer-plugin:1.0.1:enforce(enforce-bang-dependencies)@cli-- ---build-helper-maven-plugin:1.7:times