为了在 Java 生态系统内适当工作,可以将库的可选依赖项包括在 pom.xml 文件中,范围为 'provided'。
deps.edn 明确不支持使用范围为 'provided' 的依赖项,而是使用别名。
为了作为一个更广泛 Java 生态系统中的库,能够写入一个包含额外的依赖项(depens.edn 中未包含)并且范围为 'provided' 的库 jar 文件将非常有帮助。
例如,cljdoc 在构建库时无法包含所有适当的依赖项,导致无法构建文档。
'write-pom' 已经有了包含模板 'source' pom.xml 的选项,但依赖项会被从 deps.edn 文件中获得的信息覆盖。
有一些解决方法 - 例如,请参考线程 https://clojurians.slack.com/archives/C8V0BQ0M6/p1680090647156119 对过程进行补丁以包含具有 'provided' 范围的依赖项 - 但它们并不是理想的。
选项。
不采取行动 - 按照 Slack 线程示例修正 tools.build,或者修改生成的 pom.xml 以包含额外的 'provided' 范围依赖项。
合并现有的从源(模板)pom.xml 依赖项,而不是覆盖(但可能是一个破坏性更改)
为 'write-pom' 提供额外的参数以包含任意依赖项,这是一个包含 :scope 的映射序列,这些可选依赖项的范围将为 :provided。
与 cljdoc 合作以支持别名,以便库作者可以自定义文档构建,避免如此类构建失败。