【发布时间】:2016-01-27 21:53:14
【问题描述】:
是的,我确实需要同时应用“maven”和“artifactory”插件。但是,有许多现有的 Jenkins 作业明确调用“uploadArchives”(由 maven 插件提供)。我想在我自己的插件中覆盖它,以在使用“uploadArchives”时强制它调用“artifactoryPublish”。
我想在我的插件中以编程方式执行此操作,而不是更改数百个 build.gradle 文件,并且到目前为止我已经尝试了我能想到的所有调用组合,但没有运气。
最后一个警告是,这必须至少回到 Gradle 2.4,因为正在使用 gradle 包装器,并且在一组构建中调用了几个不同版本的 gradle。
有人知道如何实现这一点吗?
这是我尝试的最新方法:
project.getTasks().replace('uploadArchives', MyTask)
虽然构造函数被调用(通过 println 消息验证),但任务本身从未被调用(通过添加显式“throw”语句验证并且从未看到异常)。
【问题讨论】:
-
你一定要覆盖任务吗?补充剂会起作用吗?
-
另外,一旦你成功构建了你的插件,你是不是必须将你的插件添加到数百个 build.gradle 文件中?
-
我不希望任何人再使用uploadArchives,但可能有几百个现有的自动化工作调用它。因此,如果这些工作改为调用我的东西,而不必更改所有这些工作,那将会很有帮助。至于添加我的插件,这已经完成了——我只是在改变实现。