我在使用Gradle api的Gradle自定义插件中工作,需要设置一个始终执行的操作,比如配置任务。
我以这种方式创建了一些任务:
class MyTask extends DefaultTask {
@TaskAction
void myAction() throws Exception {
[my action code]
}
}
然后添加到项目中:
class MyPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.getTasks().create("myTask", MyTask.class)
}
}
...这些工作原理是:当我显式调用myWork目标时,它会被执行,但是我需要一个每次都被执行的任务,即使没有显式调用。
我终于找到了方法:
这个想法是将我的动作配置为配置。我想有几种方法,但我喜欢这一种:
class MyPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
final MyTask myTask = project.getTasks().create(
"myTask", MyTask.class
)
project.getConfigurations().create(
"myTask",
{
myTask.myMethod()
}
)
}
}
如果想在grable每次运行时都执行代码,可以直接将代码添加到apply
方法中,或在块afterEvaluate
中:
class MyPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.getTasks().create("myTask", MyTask.class)
// your code...
// or
project.afterEvaluate(proj -> {
// your code...
});
}
}
如果你需要在task
中专门编写代码,那么你应该让你的任务dependsOn
成为一个现有的任务(该任务已经在DAG-有向无环图中注册)。例如:
MyTask task = Tproject.getTasks().create("myTask", MyTask.class);
project.getTasks().findByName("assembleDebug").dependsOn(task);
关于dependsOn
你可以在文档和这个答案中看到。
弃用:
此外,在旧版本的Gradle中,您可以执行your Task.execute()
,但现在不建议使用。
我在IntelliJ中为setter创建了一个自定义模板。当我使用Alt Insert时,我可以选择该模板,而且效果很好。 但是,当我尝试按Alt-Enter生成缺少的setter时,它使用IntelliJ默认值。 如何使Alt Enter完成使用我的自定义模板而不是默认?
问题: NSIS 中,自定义页面中,有一个 勾选框 和 一个 目录选择编辑框,能否实现勾选 CheckBox 后,目录选择编辑框 可用,如果不勾选,目录选择编辑框 变为不可用。 回答: 问题涉及到 NSIS 中自定义页面中的关于控件的消息传递问题,还有怎样进入回调函数处理的问题。 关于自定义页面的预先声明格式: Page custom [创建函数] [离开函数] [标题] 这里解释一下,关于自定义
我正在尝试创建一个自定义任务/插件(两者都拒绝工作),用于我的gradle构建脚本。 我正在使用groovy插件,希望在单独的文件中声明任务/插件,而不是在我的构建中。格拉德尔。 我的项目树如下所示: 我试图做的是在中创建我的任务/插件类,然后在。 让我举一个小例子。 TestTask。groovy: build.gradle 当我尝试使用我的gradle.build(清洁,构建等)做任何事情时,
问题内容: 如果我正确理解Java Networking and Proxies ,则该文件包含默认值,这些默认值在运行时填充到系统属性中。我的文件包含以下内容: 但是,当我在Eclipse 4.5中运行Java应用程序时,会返回。 我尚未在应用程序中的任何地方定义或覆盖此值。 我如何在运行时检索in 的值? 问题答案: 该文件未加载到系统属性()中。 通过或在命令行上手动设置代理(例如使用语法)
有没有办法配置默认消息 或 在上面的示例中,
有没有办法重新调整默认条带结帐的电子邮件宽度和其他字段... https://stripe.com/docs/checkout#集成-自定义 例如: 可以添加width属性来自定义嵌入在stripe窗体中的任意控件?