我正在编写一个包含复制任务的自定义插件。该任务应该从maven存储库中获取wsdl文件或包含wsdl和xsds的zip。在zip文件的情况下,它将使用ziptree来扩展文件。
完成此操作后,另一项任务将使用wsimport从这些文件创建客户端jar。
我目前的尝试是使用插件布尔属性来区分。以下代码是我试图实现的目标:
void addTasks(Project project) {
project.task('downloadWSDL', type: Copy) {
if (project.wsimport.zipped) {
from { project.configurations.wsdl.collect { project.zipTree(it) }}
into { project.wsimport.wsdlDir }
} else {
from { project.configurations.wsdl }
into { project.wsimport.wsdlDir }
}
}
}
这里的问题是在配置阶段没有设置project.wsimport.zipped(我想假)。我试图将它放在一个闭包中,但即使该属性设置为false,它似乎仍然会执行压缩路径。
如何根据条件配置此类任务?
检查工作解决方案是否处于最新状态时是否会按预期运行?
我认为另一种方法可能是拥有2个不同的任务并动态修改依赖类的dependsOn,但我怀疑它会遇到类似的问题。
谢谢。