2017-03-01 57 views
2

我有一个摇篮构建具有形式如果没有找到文件依赖关系,如何使构建失败?

compile files('path/to/local/lib.jar') 

的一些依赖(构建正在迁移 - 最终将被取代)

构建失败,因为被错误地指定这些路径之一。但由于编译错误而失败 - 看起来像Gradle默默地忽略了缺失的依赖关系。

有一个简单的选项或开关,这将迫使摇篮到构建失败,如果任何依赖(尤其是本地文件依赖性)无法解析(例如,文件丢失)?

编辑:进一步明确:

如果一个依赖关系不能在配置的存储库中找到,将摇篮试图解决这些问题时,构建失败,符合市场预期。

但是 - 如果依赖性被定义为“编译的文件......”,并指定文件不生成时存在,摇篮会忽略这个错误,并试图编译反正。这似乎壮观执迷不悟和不一致的默认行为。

我的问题是 - 没有办法,我可以设置为强制摇篮,以验证文件相关性存在的摇篮选项或开关或环境变量或系统属性? (例如,,在理智和理性的行为方式?)

回答

0

要构建失败,您可以:

ant.fail('message why it failed') 

然后你就可以制作一个条件,那么失败,友好的信息,构建;)

我建议创建一个任务,将符合条件的第一把文件添加到项目,以检查文件是否可用等,如果不是则抛出一个摇篮异常,并有消息构建失败,并在执行第一执行任务相。

我没有机会,现在来测试它,但它可能是这样的,纠正我,如果任何语法是错误的 - 但你应该明白我的意思。

def yourDep = $/\path\to\your\depdendency/$ 

task bringDeps << { 

    if (yourDep.exists()){ 
    copy { 
     from yourDep 
     into $projectDir/depsOrSmthg 
    } 
    } else{ 
    ant.fail('message why it failed') 
    } 

} 
+0

这是有用的,但我希望/询问是否有某种内置的摇篮功能,将验证依赖是否存在等,而无需编写自定义代码来检查每一个。 – David

+0

对不起,大卫我不确定,你依赖于那里的一个文件,我不是说没有,但我怀疑它。 – LazerBanana

+0

另一方面,如果你有像你说的依赖关系的负载,我会建议使用类似Nexus的东西,然后你可以指定另一个存储库并使用正常的依赖关系语法,它会检查存在以及你可能寻找的内容。 – LazerBanana

相关问题