即使无法下载依赖项,Gradle构建也会成功

时间:2014-01-29 18:13:18

标签: maven jenkins dependencies gradle

我们是Gradle和依赖解析的新手。我正在为我们所有内部生成的工件创建pom.xml文件,并希望在我们的Jenkins服务器中设置一个作业来验证依赖关系是否正确定义而且没有冲突(即LibA需要x-1.0.jar,LibB需要x-1.1.jar,而AppY需要LibA和LibB)。

因此,我在SVN中设置了一个虚拟项目,其中只包含一堆内部工件作为依赖项。在TTD之后,我故意在声明中包含一些错误(即组和名称,但不包括版本)。果然,无法找到那些依赖关系。

但是当我使用gradle(即gradle依赖项)运行此构建时,它包含所有失败消息,但仍然说构建成功!不好!<​​/ p>

我如何使用Gradle / Jenkins设置一个自动化作业来验证所有依赖项?

2 个答案:

答案 0 :(得分:2)

没有内置任务可以解决所有依赖项,如果找不到依赖项,则会失败。 (如果缺少依赖项,IDE任务会很优雅。)但您可以轻松编写自己的:

task resolveDependencies { 
    doLast { 
        configurations.all { it.resolve() } 
    }
}

答案 1 :(得分:0)

gradle dependencies设计显示Gradle项目依赖项报告(如果适用),如果无法解析给定的依赖项(未解析的依赖项旁边的红色文本FAILED)。要获得错误,请使用一些依赖于解决gradle check等给定配置的依赖关系的任务。

<强>更新即可。 Gradle在确定是否需要执行给定任务时非常聪明。因此,如果没有要编译的源文件(编译需要解析依赖类/ JAR)gradle check可以注意到不需要执行compileJava/compileTestJava任务(任务被跳过为最新) 。您可以通过将任何Java源文件添加到src/main/test来强制它(测试还需要生成依赖项(来自compile配置))。

这只是一种解决方法,可能有更好的方法(我希望其他人会在这里提出)。