我们是Gradle和依赖解析的新手。我正在为我们所有内部生成的工件创建pom.xml文件,并希望在我们的Jenkins服务器中设置一个作业来验证依赖关系是否正确定义而且没有冲突(即LibA需要x-1.0.jar,LibB需要x-1.1.jar,而AppY需要LibA和LibB)。
因此,我在SVN中设置了一个虚拟项目,其中只包含一堆内部工件作为依赖项。在TTD之后,我故意在声明中包含一些错误(即组和名称,但不包括版本)。果然,无法找到那些依赖关系。
但是当我使用gradle(即gradle依赖项)运行此构建时,它包含所有失败消息,但仍然说构建成功!不好!</ p>
我如何使用Gradle / Jenkins设置一个自动化作业来验证所有依赖项?
答案 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
配置))。
这只是一种解决方法,可能有更好的方法(我希望其他人会在这里提出)。