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

“latest.integration”的常春藤决心在詹金斯运行时失败

朱皓
2023-03-14

所以我有一个现有的蚂蚁构建,我想使用常春藤解决它的依赖关系。我有一个ivy.xml和ivysettings.xml文件,它既可以在Eclipse中使用IvyDE,也可以在从命令行运行ivy-2.3.0.jar.时使用(它们的工作方式与Ivy报告中的依赖关系相同)。

我的问题是,当“rev”属性被列为“latest”时,从任何构建脚本运行时,它们都不起作用。“一体化”。如果我指定了一个版本,那么依赖关系就被解决了。要明确这个特定的依赖关系是一个由Artifactory托管的内部库。

对于我可以改变什么或尝试找出问题,我感到相当困惑。我在运行常春藤FindVision时也遇到同样的失败。

注意Jenkins是在mac上运行的,但是我可以直接使用Ivy jar来解决依赖关系,在机器上使用相同的ivy文件,这个问题只与通过Jenkins解决时有关。

我意识到这不太可能是有人可以看到并直接指向问题的东西,尤其是考虑到在似乎所有其他情况下,即使通过eclipse运行蚂蚁构建的代码片段,解决方案也能正确工作。但是如果有人有任何建议,他们将非常欢迎!

总之我的ivy.xml

<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
    <info
        organisation="MyOrg"
        module="MyModule"
        status="integration">
    </info>

    <dependencies>
        <dependency org="MyOrg" name="DEP" rev="latest.integration">
            <artifact name="DEP" type="jar" ext="jar" />
        </dependency>
        <dependency org="junit" name="junit" rev="4.8.1" />
    </dependencies>
</ivy-module>

还有我的长春藤。xml(依赖项的名称为DEP-0.1-SNAPSHOT.jar)

<?xml version="1.0" encoding="UTF-8"?>
<ivy-settings>
  <settings defaultResolver="snapshot" />
  <!--Authentication required for publishing (deployment). 'Artifactory Realm' is the realm used by Artifactory so don't change it.-->
  <credentials host="HOST" realm="Artifactory Realm" username="USR" passwd="PASS" />
  <resolvers>
    <chain name="main">
      <!-- <ibiblio name="release" m2compatible="true" root="http://HOST/artifactory/libs-release" /> -->
      <chain name="snapshot" changingPattern="0.*" checkmodified="true">
        <ibiblio name="public" m2compatible="true" root="http://HOST/artifactory/libs-snapshot" />
      </chain>
    </chain>
  </resolvers>
</ivy-settings>

最后,我的构建脚本看起来像

<project name="MyModule Continuous Integration" xmlns:ivy="antlib:org.apache.ivy.ant">
....
<target name = "resolveDependencies" >
    <ivy:configure file="/MyModule/ivysettings.xml" />
    <ivy:findrevision organisation="MyOrg" module="DEP" revision="latest.integration" property="found.revision" />
    <echo message="Found revision: ${found.revision}" />
    <ivy:resolve file="/MyModule/ivy.xml" refresh="true" type="jar" />
    <ivy:cachepath pathid="ivy.dependencies" />
</target>
....
</project>

对于完成,我从Jenkins构建中得到的输出是:

[ivy:findrevision] snapshot: Checking cache for: dependency: MyOrg#DEP;latest.integration {}
[ivy:findrevision] don't use cache for MyOrg#DEP;latest.integration: checkModified=true
[ivy:findrevision] default-cache: no cached resolved revision for MyOrg#DEP;latest.integration
[ivy:findrevision]      tried http://HOST/artifactory/libs-snapshot/MyOrg/DEP/[revision]/DEP-[revision].pom
[ivy:findrevision] CLIENT ERROR: Not Found url=http://HOST/artifactory/libs-snapshot/MyOrg/DEP/maven-metadata.xml
[ivy:findrevision]  maven-metadata not available: http://HOST/artifactory/libs-snapshot/MyOrg/DEP/maven-metadata.xml
[ivy:findrevision] WARN: problem while listing resources in http://HOST/artifactory/libs-snapshot/MyOrg/DEP/ with public:
[ivy:findrevision] WARN:   java.lang.NullPointerException null
[ivy:findrevision]      tried http://HOST/artifactory/libs-snapshot/MyOrg/DEP/[revision]/DEP-[revision].jar
[ivy:findrevision]  maven-metadata not available: http://HOST/artifactory/libs-snapshot/MyOrg/DEP/maven-metadata.xml
[ivy:findrevision] WARN: problem while listing resources in http://HOST/artifactory/libs-snapshot/MyOrg/DEP/ with public:
[ivy:findrevision] WARN:   java.lang.NullPointerException null
[ivy:findrevision]  public: no ivy file nor artifact found for MyOrg#DEP;latest.integration
Property "found.revision" has not been set
     [echo] Found revision: ${found.revision}

再次感谢你的建议,

丹。

共有1个答案

尚俊楠
2023-03-14

作为将来的参考,我已经设法解决了这个问题,换成了最新的常春藤2.4阿尔法版本。看来2.3.0一定有问题。

 类似资料:
  • 问题内容: 我正在运行在本地工作的脚本。但是,当我在詹金斯构建过程中运行脚本时,sed无法正常工作。 这是我验证路径正确的代码。文件在那里。 我觉得这与我的语法有关。但这在本地有效,那么我可能做错了什么? 问题答案: 从sed命令中删除和的两个单引号()之间的 空格 。通常,后缀必须立即跟在选项后面,且不能有空格。

  • 我项目中的某些开发人员无法成功执行常春藤解析。我们对远程服务器/文件系统使用ivy-ssh解析器。受影响的开发人员通常会成功解决除1或2个依赖项之外的所有依赖项。未能解决的依赖关系是较大的jar(例如:nasa worldwind)。同样,大多数用户能够毫无问题地解决所有依赖项。eclipse项目,常春藤。xml和ivysettings。xml都来自软件repo,在受影响的用户和未受影响的客户之间

  • 我正在尝试使用IVY,并且我已经在springsource工具套件中设置了我的IVY-de。 在尝试构建我的工作空间时,我得到了以下错误。 说明资源路径位置类型类路径发布/导出依赖项C:/Users/user1/.ivy2/cache/jstl/jstl.jars/jstl-1.2.jar无效。项目包含另一个具有相同存档名称的依赖项。Web P/Web类路径依赖关系验证器消息 在这方面,我们非常感

  • 我是艾薇的新手,所以这可能已经被报道过了,但是我知道的还不够多。我的搜索结果是空的,没有找到类似的经历。 因此,当我第一次下拉整个项目并且更新库引用时,我有时会收到未解决的依赖项警告。它似乎在随机库上。 例如,我刚刚在某个项目中添加了Commons-codec-1.9,而工作集中的其他项目使用1.6和1.7。当运行盛大的构建脚本时,突然对于1.6和1.7“配置[is]未找到”: 现在,我不完全确定

  • 我目前正在与apache ivy的conf设置作斗争。也许我会先解释我想实现的目标: 我需要两种配置:编译、运行时 这是我试过的: 但它甚至无法被解析:无法解析ivy文件'...\ivy.xml': 有人能告诉我如何正确地声明conf设置,这样我就可以使用compile或runtime来解析,并获得所有jar,包括可传递的依赖项(在这个示例中,只有ivy的jar)。 使现代化 好的,谢谢你的链接。

  • 问题内容: 我已经使用Jenkins为我的node js应用程序创建了CI管道。我的管道包括诸如构建,单元测试,集成测试,代码分析等工作。我知道默认情况下,即使一个测试用例失败,构建也会失败。 问题答案: 您的单元测试脚本将需要处理数学和逻辑,以确定失败的测试百分比足以使整个工作失败。然后,您的单元测试脚本可以返回通过(零)或失败(其他任何结果),詹金斯将相应地标记构建。