You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Leiningen使生成的Jar包同时包含project.clj和pom.xml

解决Leiningen生成的Jar同时包含project.clj和pom.xml的问题

要让Leiningen生成的Jar包同时包含META-INF/maven/groupId/artifactId/project.clj和pom.xml,有两种简单直接的实现方式,我给你详细说明:

方法一:让Leiningen自动生成并打包pom.xml

Leiningen本身支持自动生成符合Maven规范的pom.xml,只需要在你的project.clj中添加一行配置即可:

(defproject your-artifact-id "1.0.0"
  :group-id your.group.id
  ;; 其他项目配置...
  :pom true)

添加完成后执行lein jar命令,Leiningen会自动生成标准的pom.xml,并将它和默认的project.clj一起打包到Jar内的META-INF/maven/your.group.id/your-artifact-id/目录下,完全满足你的需求。

方法二:使用自定义pom.xml文件

如果你已经有手动编写的pom.xml,或者需要自定义pom的内容,可以在project.clj里指定pom文件的路径:

(defproject your-artifact-id "1.0.0"
  :group-id your.group.id
  ;; 其他项目配置...
  :pom-file "pom.xml")

执行lein jar时,Leiningen会将你指定的pom.xml打包到Jar的对应Maven目录下,同时保留默认的project.clj文件。

验证结果

打包完成后,你可以用jar tf your-artifact-id-1.0.0.jar命令查看Jar内的文件结构,应该能看到如下内容:

META-INF/maven/your.group.id/your-artifact-id/project.clj
META-INF/maven/your.group.id/your-artifact-id/pom.xml

这样就实现了和mvn package类似的Jar内容结构,同时保留了Leiningen的project.clj文件。

内容的提问来源于stack exchange,提问作者erdos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:52:44