如何在groovy中将上下文传递给自定义定义的方法?

埃拉德·本达(Elad Benda)2
def setSystemProperties(project) {
    if (project.hasProperty('serverversion')) {
        args(serverversion)
    }
    if (project.hasProperty('input_flavor')) {
        systemProperties['input_flavor'] = input_flavor
        print "gradle input_flavor" + input_flavor
    }
    jvmArgs = ["-Xms1024m", "-Xmx1024m"]
    classpath sourceSets.main.runtimeClasspath
}



//warm up

task BL_generate_parallel_warmup(type: JavaExec) {
    setSystemProperties(project)
    dependsOn resources_cleaner_bl
    systemProperties['isDummyRun'] = 'true'
    main = "astar.BlParallelGenerator"
}

我应该在什么情况下setSystemProperties()解决此错误?

> No such property: jvmArgs for class: org.gradle.api.internal.project.DefaultProject_Decorated

或者 > Could not find method classpath() for arguments [file collection] on root project 'RoutingRegression'.

当所有代码都在任务正文中时,代码可以正常工作:

//warm up

task BL_generate_parallel_warmup(type: JavaExec) {
      if (project.hasProperty('serverversion')) {
        args(serverversion)
    }
    if (project.hasProperty('input_flavor')) {
        systemProperties['input_flavor'] = input_flavor
        print "gradle input_flavor" + input_flavor
    }
    jvmArgs = ["-Xms1024m", "-Xmx1024m"]
    classpath sourceSets.main.runtimeClasspath
    dependsOn resources_cleaner_bl
    systemProperties['isDummyRun'] = 'true'
    main = "astar.BlParallelGenerator"
}
JBird维加斯

查看您的任务,我看到了为什么classpath设置失败的原因。您错过了=用等号表示您要设置JavaExec类实例的属性如果没有等号,那么您正在告诉groovy调用方法。由于不存在任何方法setClasspath(classpath仅作为类的属性存在),因此该方法失败。

task runApp(type: JavaExec) {
    classpath = sourceSets.main.runtimeClasspath
    main = 'example.so.35869599.Main'
    jvmArgs = ["-Xms1024m", "-Xmx1024m"]
    // arguments to pass to the application
    args 'blah!'
}

使用上面的代码,我可以运行包含public static void main(String... args)方法的测试类

参考jvmArgsJavaExec可以在这里找到:https://docs.gradle.org/current/dsl/org.gradle.api.tasks.JavaExec.html#org.gradle.api.tasks.JavaExec:jvmArgs

编辑:没注意到您正在尝试传递JavaExec对象。的实例JavaExec作为arg传递到JavaExec配置闭包。我们可以通过这样的示例使这一点更加清楚。

// here if we specify the type and name of the object passed to the closure
// it becomes clearer where we can access the `jvmArgs` property.
task runApp(type: JavaExec) { JavaExec exec ->
    addArgsToJvm(exec)
    classpath = sourceSets.main.runtimeClasspath
    main = 'example.so.35869599.Main'
    // arguments to pass to the application
    args 'appArg1'
}

def addArgsToJvm(JavaExec exec) {
    println "############################## caller passed: ${exec.getClass().getCanonicalName()}"
    exec.jvmArgs = ["-Xms1024m", "-Xmx1024m"]
}

上面的示例将在命令行中显示此结果:

############################## caller passed: org.gradle.api.tasks.JavaExec_Decorated

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将上下文传递给C / C ++中定义的Ruby方法

来自分类Dev

如何在Ajax中将上下文传递给完成

来自分类Dev

将上下文传递给接口方法

来自分类Java

如何将上下文传递给AsyncTask?

来自分类Dev

express-graphql - 如何在上下文中将 res 对象传递给自定义函数?

来自分类Dev

Django - 上下文 - 如何将上下文传递给所有视图

来自分类Dev

将片段活动上下文传递给自定义listview适配器

来自分类Dev

将上下文传递给函数调用

来自分类Dev

Android:在NPE中将上下文传递给助手类结果

来自分类Dev

如何将上下文传递给Enzyme mount方法以测试包括Material UI组件的组件?

来自分类Dev

将上下文传递给许多方法是否正常?

来自分类Dev

JS:如何将上下文传递给访问函数类的setTimeOut匿名函数

来自分类Dev

如何将上下文传递给Javascript承诺

来自分类Dev

如何将上下文传递给另一个小部件?

来自分类Dev

如何将上下文传递给不同的视图函数?(Django)

来自分类Dev

有没有更好的方法可以将上下文传递给助手Kotlin类?

来自分类Dev

如何将上下文传递给棉花糖中的嵌套序列化器?

来自分类Javascript

如何将此上下文传递给函数?

来自分类Dev

使用这种方式将上下文传递给非上下文类是否安全?

来自分类Dev

为什么将上下文传递给Intent的构造函数?

来自分类Dev

将上下文传递给函数有用吗?

来自分类Dev

将上下文传递给 django-registration 的视图

来自分类Dev

Django REST Framework:将上下文传递给嵌套的序列化程序

来自分类Dev

将上下文传递给Class会导致getSystemService返回空指针异常

来自分类Dev

将上下文传递给React ChartJS 2上的选项

来自分类Dev

将上下文传递给many2many字段

来自分类Dev

将上下文传递给Sinon存根的假函数

来自分类Dev

React Native:将上下文传递给提供者构造函数

来自分类Dev

将上下文传递给android活动中的helper类会泄漏吗?

Related 相关文章

  1. 1

    如何将上下文传递给C / C ++中定义的Ruby方法

  2. 2

    如何在Ajax中将上下文传递给完成

  3. 3

    将上下文传递给接口方法

  4. 4

    如何将上下文传递给AsyncTask?

  5. 5

    express-graphql - 如何在上下文中将 res 对象传递给自定义函数?

  6. 6

    Django - 上下文 - 如何将上下文传递给所有视图

  7. 7

    将片段活动上下文传递给自定义listview适配器

  8. 8

    将上下文传递给函数调用

  9. 9

    Android:在NPE中将上下文传递给助手类结果

  10. 10

    如何将上下文传递给Enzyme mount方法以测试包括Material UI组件的组件?

  11. 11

    将上下文传递给许多方法是否正常?

  12. 12

    JS:如何将上下文传递给访问函数类的setTimeOut匿名函数

  13. 13

    如何将上下文传递给Javascript承诺

  14. 14

    如何将上下文传递给另一个小部件?

  15. 15

    如何将上下文传递给不同的视图函数?(Django)

  16. 16

    有没有更好的方法可以将上下文传递给助手Kotlin类?

  17. 17

    如何将上下文传递给棉花糖中的嵌套序列化器?

  18. 18

    如何将此上下文传递给函数?

  19. 19

    使用这种方式将上下文传递给非上下文类是否安全?

  20. 20

    为什么将上下文传递给Intent的构造函数?

  21. 21

    将上下文传递给函数有用吗?

  22. 22

    将上下文传递给 django-registration 的视图

  23. 23

    Django REST Framework:将上下文传递给嵌套的序列化程序

  24. 24

    将上下文传递给Class会导致getSystemService返回空指针异常

  25. 25

    将上下文传递给React ChartJS 2上的选项

  26. 26

    将上下文传递给many2many字段

  27. 27

    将上下文传递给Sinon存根的假函数

  28. 28

    React Native:将上下文传递给提供者构造函数

  29. 29

    将上下文传递给android活动中的helper类会泄漏吗?

热门标签

归档