欢迎!请访问 关于 页面了解这项工作的更多信息。
由于 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 数据)。
:pom-data
文档: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 文件中,而 :src-pom 选项允许您提供所有这些字段。
tools.build
:license
:src-pom
我认为更多的文档应该推荐使用一个“模板”pom.xml文件(并会更新clojure-doc.org中的tools.build手册以反映这一点)。