欢迎!请参阅关于页面以了解更多关于它是如何工作的信息。
由于Clojars要求许可证,需要上传到那里的项目需要在它们的jar的pom文件中有一个许可证块。使用build.tools,可以创建pom.xml,手动编辑它以包含许可证部分,然后使用该pom创建jar。但这却是手工的。
是否有计划添加一个选项到write-pom(和gen-pom)允许程序性插入一个许可证?
write-pom
gen-pom
tools.build v0.9.6 现在包含一个额外的 :pom-data 属性,用于在生成的 pom 文件中以 hiccup 风格提供许可证(以及其他 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
这也是我在我的 FOSS 项目中处理此问题的方法,例如 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 文件(并且我会更新 tools.build 的 clojure-doc.org 烹饪书,以反映这一点)。