运行 后端 Marklogic 服务器中的自定义 JavaScript 任务

Running a custom JavaScript task in the backend Marklogic server

我正在尝试通过 运行nng 一个 gradle 任务从后端服务器获取 datahub-staging 中的所有集合列表。

我尝试编写以下任务:

cat myCustomJs.task 
task myJavascriptTask(type: com.marklogic.gradle.task.ServerEvalTask) {
  javascript = "cts.collections()"
}

但是,我不确定如何创建或 运行 任务以便我可以获得 cts.collections() 的结果。非常感谢任何线索。

我的 build.gradle 文件中设置了几个这样的任务。这是您正在寻找的模式:

task getCollections(type: com.marklogic.gradle.task.MarkLogicTask) {
  doLast {
    def client = getAppConfig().newDatabaseClient()
    String request = """
      cts.collections().toArray().join("; ")
    """;

    try {
      String result
      result = client.newServerEval().javascript(request).evalAs(String.class);
      if (result != null) {
        println result
      }
    } finally {
      client.release()
    }
  }
}