【问题标题】:sbt ~ to trigger on files outside project…?sbt ~ 触发项目外的文件...?
【发布时间】:2021-06-10 12:35:44
【问题描述】:

我制作了一个 sourceGenerator 插件,可以将 yaml 文件构建到 Scala 源代码中。 yaml 文件必须位于使用 sourceGenerator 的项目之外。除了触发执行之外,这在所有方面都可以正常工作。

我已经通过在项目中添加一个无意义的文件来验证这一点,这也可以很好地触发构建:

    openApiGenerate / fileInputs := openApiAllInputFiles.value
    openApiGenerate / fileInputs += (baseDirectory.value / "test.txt").toGlob,

罪魁祸首在使用现场:

openApiAllInputFiles := Seq((baseDirectory.value / ".." / ".." / "api-schema").toGlob / **)
sbt:reportingHttpApi> show openApiGenerate / fileInputs
[info] * /[myproject]/reporting/http-api/../../api-schema/**
[info] * /[myproject]/reporting/http-api/test.txt

运行 ~o​​penApiGenerate 然后在 api-schema 下编辑任何真实输入文件不会触发重建,而编辑 test.txt 会触发它。

我也尝试添加到 watchTriggers 中,但这没有帮助。

有没有办法在不依赖软链接的情况下解决这个问题?

【问题讨论】:

    标签: scala sbt sbt-plugin


    【解决方案1】:

    子项目之外的相关文件似乎无法以我尝试过的任何方式工作,但对于我的用例来说,只需使用ThisBuild 即可获得根:

    openApiAllInputFiles := Seq((ThisBuild / baseDirectory).value / "api-schema").toGlob / **)
    

    【讨论】:

      猜你喜欢
      • 2012-07-10
      • 1970-01-01
      • 2016-01-16
      • 2015-07-20
      • 2017-05-07
      • 2016-05-28
      • 2012-07-24
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多