欢迎!请查看关于页面获取更多关于它是如何工作的信息。
现在 Clojars 需要许可证,需要上传到那里的项目需要在他们的 jar 包的 pom 文件中添加许可证代码块。使用 build.tools 可以创建一个 pom.xml 文件,手动编辑它以包含许可证部分,然后使用它创建一个 jar 包。但这需要手动操作。
有什么计划为 write-pom(和 gen-pom)添加一个选项,以便程序化地插入许可证吗?
write-pom
gen-pom
tools.build v0.9.6 现在包含了一个额外的 :pom-data 属性,可以使用它以 hiccup 风格提供许可(以及其他 pom 数据),并将其放入生成的 pom 文件中。
文档:https://clojure.github.io/tools.build/clojure.tools.build.api.html#var-write-pom
示例
(b/write-pom ... :pom-data [[:licenses [:license [:name "Eclipse Public License 1.0"] [:url "https://opensource.org/license/epl-1-0/";] [:distribution "repo"]]]])
write-pom 已经可以使用“模板”pom.xml 文件生成最终的上传 pom.xml 文件。这就是 deps-new 和 clj-new 生成的内容 - 查看该模板文件的源代码。
pom.xml
deps-new
clj-new
https://github.com/seancorfield/deps-new/blob/develop/resources/org/corfield/new/lib/root/template/pom.xml
这就是我在我的开源项目中处理这个问题的方法,比如在 next.jdbc 中。
next.jdbc
https://github.com/seancorfield/next-jdbc/blob/develop/template/pom.xml
以及
https://github.com/seancorfield/next-jdbc/blob/develop/build.clj#L45
我认为不应该在tools.build中添加一个:license选项 —— 已有很多其他字段应该包含在上传的pom.xml文件中,而write-pom也会遗漏它们,而:src-pom选项允许你提供所有这些字段。
tools.build
:license
:src-pom
我认为更多的文档应该建议使用一个“模板”的pom.xml文件(我会更新clojure-doc.org中关于tools.build的菜谱以反映这一点)。