小编Sco*_*ipp的帖子

Gradle exec任务返回非零退出值并使构建失败但我想不会失败而是执行另一个任务

我有一个非常默认的exec任务设置,如:

task myTask(type:Exec) {

    workingDir '.'

    commandLine './myscript.sh'

    doLast {
        if(execResult == 0) {
           //one thing
        } else {
           //another thing
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但不幸的是,当脚本抛出错误时,它永远不会执行doLast块.相反,它会跳过它并使整个构建失败

任务':project:myTask'的执行失败.进程'命令'./myscript.sh''以非零退出值1完成"

那对我来说没用.使用非零退出值完成myscript.sh的整个想法是这样我可以执行一些代码来响应它.我需要做什么才能使构建失败但捕获结果并执行响应操作?谢谢您的帮助!

gradle

29
推荐指数
2
解决办法
2万
查看次数

得墨忒耳定律和收藏组合如何协同工作?

我已阅读几乎所有标记为Demeter法的问题.我的具体问题在任何其他问题中都没有得到回答,尽管它非常相似.主要是我的问题是当你有一个具有复合层的对象,但需要从各种对象中检索属性值时,你如何实现这一点以及为什么采用一种方法而不是另一种?

假设你有一个非常标准的对象,由其他对象组成,如下所示:

public class Customer {
  private String name;
  private ContactInfo primaryAddress;
  private ContactInfo workAddress;
  private Interests hobbies;
  //Etc...

  public getPrimaryAddress() { return primaryAddress; }
  public getWorkAddress() { return workAddress; }
  public getHobbies() { return hobbies; }
  //Etc...
}

private ContactInfo {
  private String phoneNumber;
  private String emailAddress;
  //Etc...

  public getPhoneNumber() { return phoneNumber; }
  public getEmailAddress() { return emailAddress; }
  //Etc...
}

private Interests {
  private List listOfInterests;
}
Run Code Online (Sandbox Code Playgroud)

以下都违反了得墨忒耳法则:

System.out.println("Phone: " + customer.getPrimaryAddress().getPhoneNumber());
System.out.println("Hobbies: " + customer.getHobbies().getListOfInterests().toString());
Run Code Online (Sandbox Code Playgroud)

我认为这也违反了得墨忒耳法(澄清?): …

java oop law-of-demeter

12
推荐指数
1
解决办法
1046
查看次数

标签 统计

gradle ×1

java ×1

law-of-demeter ×1

oop ×1