在Jenkins中构建失败,找到重复的资源

时间:2015-03-09 18:49:24

标签: java eclipse maven jenkins rest-assured

我最近将此依赖项添加到pom.xml

<dependency>
    <groupId>com.jayway.restassured</groupId>
    <artifactId>rest-assured</artifactId>
    <version>2.4.0</version>
</dependency>

我的构建在jenkins中失败,出现以下错误消息:

[WARNING] Found duplicate resources in [org.codehaus.groovy:groovy:2.3.7,org.codehaus.groovy:groovy-json:2.3.7,org.codehaus.groovy:groovy-xml:2.3.7] :
[WARNING]   META-INF/groovy-release-info.properties
[JENKINS] Archiving disabled
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5:37.485s
[INFO] Finished at: Mon Mar 09 10:10:49 PDT 2015
[INFO] Final Memory: 46M/381M
[INFO] ------------------------------------------------------------------------
[JENKINS] Archiving disabled
Waiting for Jenkins to finish collecting data
[ERROR] Failed to execute goal com.ning.maven.plugins:maven-duplicate-finder-plugin:1.0.4:check (default) on project LightmileTest: Found duplicate classes/resources -> [Help 1]

4 个答案:

答案 0 :(得分:1)

您的新依赖关系可能是通过Maven(duplicate-finder-plugin)进行此测试失败的。从命令行运行手动检查(在POM文件的级别上)以找出有问题的类:

mvn com.ning.maven.plugins:duplicate-finder-maven-plugin:1.0.4:check

然后,您可以删除依赖项或配置Maven插件以忽略这些。 (config here

答案 1 :(得分:0)

背景/详情

我有一个类似的问题,这让我暂时停了一会儿,我开始质疑我的专家知识并做了一些挖掘。如果您想了解有关重复查找器的更多信息,可以阅读他们的github上的自述文件:https://github.com/ning/maven-duplicate-finder-plugin

对于我所在的项目,我确定我可以在依赖项中排除或向重复的查找器添加例外。我在我的项目中看到了这两个,并想知道何时适合做哪个。

来自插件的消息有助于识别重复所在的位置。当您尝试添加新的依赖项时,通常会看到这一点。当您看到这一点时,有两个选项,要么从依赖项中排除内容,要么在com.ning.maven.plugins:duplicate-finder-maven-plugin配置中创建例外。

摘要/结论

添加例外,只是忽略了问题。所以更简洁的方法是在依赖项中添加排除。这样你就能得到你期望/渴望的东西。此外,沿着例外路线走下去只会增加大量额外的工作,这些工作并不是非常有用。因此插件的目的是帮助您识别重复,然后尝试通过依赖项中的排除来处理它们。

如何排除的示例

在您的示例/案例中,以下其中一项适合您:

<dependency>
    <groupId>com.jayway.restassured</groupId>
    <artifactId>rest-assured</artifactId>
    <version>2.4.0</version>
    <exclusions>
        <exclusion>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-json</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>com.jayway.restassured</groupId>
    <artifactId>rest-assured</artifactId>
    <version>2.4.0</version>
    <exclusions>
        <exclusion>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy</artifactId>
        </exclusion>
    </exclusions>
</dependency>

答案 2 :(得分:-1)

你可以做的是遵循范围规则,这意味着,根据它们的范围单独依赖,例如在你的情况下,放心用于测试,为什么不把它放在测试的范围内:< / p>

<scope>test</scope>

辅助,我通常做的是从我本地机器上的Jenkins执行完全相同的命令,通常它确实有帮助,从你的错误日志我觉得它不放心相关,所以请尝试运行在Jenkins上的MVN目标在本地,并确保您有相同的错误。如果没有,它可以是maven的不同配置,例如通过Jenkins机器中的settings.xml。

答案 3 :(得分:-1)

用于避免重复的查找程序。

相关问题