为了在 Java 生态系统中适当地工作,可选依赖项可以在 pom.xml 文件中包含范围为 'provided'。
deps.edn 明确不支持包括范围为 'provided' 的依赖项,而是使用别名。
为了作为一个更广泛 Java 生态系统中的库有效地工作,能够输出一个具有 Pom.xml 文件(包含不在 deps.edn 中但带 'provided' 范围的额外依赖项)的库 JAR 文件会非常有用。
例如,cljdoc 无法在构建库且所有依赖项都未适当包含时构建文档。
'write-pom' 已有一项选项以包含一个模板 'source' Pom.xml,但依赖项被从 deps.edn 文件中的信息覆盖。
有解决方法 - 例如,请参阅线程 https://clojurians.slack.com/archives/C8V0BQ0M6/p1680090647156119,它通过包括范围 'provided' 的依赖项来修复过程 - 但它们不是理想的选择。
选项。
不采取行动 - 如 Slack 线程示例中一样 monkey patch tools.build,或以其他方式修改生成的 Pom.xml 来包括额外的 'provided' 范围依赖项。
合并来自(模板)Pom.xml 的现有依赖项,而不是覆盖[但有可能是破坏性的更改]
为 'write-pom' 提供一个选项以包含任意依赖项,一个转换为 XML 的映射序列,包括 :scope,这些可选项的依赖项范围为 :provided。
与 cljdoc 合作以支持别名,以便库作者可以自定义文档构建,使像这样的构建不会失败。