我正在编写一个扩展JavaExec的自定义任务类。自定义类位于buildSrc
,我跟着the official documentation。在自定义类中,我想显式设置类路径,这样当我重用这种类型的任务时,我不必反复设置相同的类路径。我想要实现的是以某种方式设置类路径,以便我不必使用
classpath = configurations.testRuntime
反复在build.gradle
中。那说,我怎样才能实现这个目标呢?
答案 0 :(得分:1)
在大多数情况下,扩展任务类不是正确的解决方案。相反,您的任务类应根据其特定目的进行建模,并在必要时在内部调用project.exec()
方法。 (project.exec()
提供与Exec
任务类完全相同的API。)另一种方法是编写一个声明和配置一个或多个Exec
任务的插件。
请注意,任务类永远不应该进入项目模型(例如使用project.configurations.testRuntime
等代码),因为这使得它完全不灵活。相反,任务类应该仅对其输入属性进行操作。预先配置这些输入并将事物粘合在一起就是插件的用途。