欢迎!请查看 关于 页面以了解有关如何工作的更多信息。
由于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"]]]])
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 选项 -- 由于 write-pom 也省略了足够多的“应包含在上传的 pom.xml 文件中的字段”,因此通过 :src-pom 选项您可以选择提供所有这些数据。
tools.build
:license
pom.xml
:src-pom
我认为更应推荐使用一个“模板”的pom.xml文件(我会更新clojure-doc.org关于tools.build的食谱来反映这一点)。