You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Gradle部署MarkLogic 9时Token替换失效,需补充哪些配置?

解决ML Gradle Token替换未生效的问题

我之前在ML9搭配ml-gradle 3.x版本时也踩过几乎一模一样的token替换坑,结合你给出的环境配置,大概率是下面几个关键配置环节没到位:

1. 自定义目录未加入ML Gradle的扫描范围

ml-gradle默认只会对标准目录(比如src/main/ml-config、src/main/ml-modules)下的文件执行token替换,你把资源放在plugins/config这个自定义目录下,插件根本不知道要扫描这里。

根据文件类型的不同,需要在build.gradle里添加对应的配置:

  • 对于JSON这类配置资源,添加到additionalResourceDirectories:
mlConfig {
  additionalResourceDirectories = files('plugins/config')
}
  • 对于XQuery这类模块文件,添加到additionalModuleDirectories:
mlModules {
  additionalModuleDirectories = files('plugins/config')
}

如果你的目录里同时包含两种类型,两种配置都加上就行。

2. 插件加载顺序错误

saliman properties插件负责加载环境属性,必须在ml-gradle和ml-data-hub之前加载,不然ml-gradle启动时拿不到属性值,自然没法替换token。

检查你的build.gradle插件块顺序,确保saliman排在最前面:

plugins {
  id 'net.saliman.properties' version '1.4.6'
  id 'com.marklogic.ml-data-hub' version '3.0.0'
  id 'com.marklogic.ml-gradle' version '3.6.3'
}

(注:ml-data-hub本身依赖ml-gradle,所以顺序上saliman先加载,然后是data-hub或ml-gradle都可以,但saliman必须是第一个)

3. 确认token替换未被手动禁用

虽然ml-gradle默认启用token替换,但有时候可能不小心在配置里关闭了,检查build.gradle里有没有类似这样的代码:

mlConfig {
  enableTokenReplacement = false
}

如果有,把它改成true或者直接删掉这行(默认就是true)。

验证方法

做完上面的配置后,建议:

  1. 重新运行 ./gradlew mlPrintTokens,确认所有%%XXX%%形式的token都能正确映射到环境值
  2. 用./gradlew mlDeploy --info执行部署,查看日志里是否有Scanning directory: plugins/config这类条目,以及token替换的具体过程日志,确认插件确实在处理你的文件

内容的提问来源于stack exchange,提问作者MilcoNuman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:05:20