task

标签: task

让gradle task可以执行多次

在开发中遇到这个需求,google也没能找到答案,最后自己解决了,分享出来给大家参考参考。 默认情况下gradle的task都是只能执行一次的,如下面的代码 task a { println("execute function a !!!!!!!!!!!!!!!!!!"); } a.execute() a.execute() a.execute() 运行后发现task a仅仅执行了一次,为啥只执行一次呢,开始分析通过查看 AbstractTask::execute()方法如下 public final void execute() { this.getExecuter().execute(this, this.state, new DefaultTaskExecutionContext()); this.state.rethrowFailure(); } 通过观察发现是the.state的问题,state的类型是TaskStateInternal,里面记录了task当前的状态,executing正在执行,executed执行完成等等 知道这个状态影响了task多次执行,但是我们还是没有解决我们的问题,再来看看TaskExecuter类,TaskExecuter是一个接口,

阅读全文...