Leiningen 在构建可用的 uberjar 时遇到问题

2024-05-12

我们正在尝试与 Leiningen 一起构建我们的 Clojure 项目。我们通过执行以下操作成功创建了 uberjar:

前提条件:

  • project.clj 文件列出了依赖项
  • :main my-project.core在项目.clj中
  • core.clj 文件带有-main功能
  • (:gen-class :main true)在 core.clj 中

程序:

  • ran lein test;无故障完成
  • ran lein deps;成功完成
  • 来自project.clj的目录:rainlein uberjar
  • 这创建了两个 jar 文件:My-Project-1.0.0-SNAPSHOT-standalone.jar 和 My-Project-1.0.0-SNAPSHOT.jar。
  • ran java -jar BioClojure-1.0.0-SNAPSHOT-standalone.jar,这导致了这个异常:

线程“main”中出现异常 java.lang.SecurityException:Manifest 主要属性的签名文件摘要无效

我对这个问题的研究并没有取得成果。显然 https://github.com/technomancy/leiningen/issues/31,这是一个已知问题,没有好的解决方案。我不明白那里的答案。

我们需要做什么才能让我们的 uberjar 工作?

  • 确定我们的哪个依赖项导致了问题?
  • 从我们的项目中删除依赖项?
  • 以其他方式编译项目?
  • 补丁莱宁根?
  • 使用建议的命令:zip *-standalone.jar -d META-INF/DUMMY.SF(我不知道这是做什么的)
  • 做某事:uberjar-exclusions在project.clj 文件中? (如果是这样,什么?)

Lein 和 java 版本:

$ lein version
Leiningen 1.6.1 on Java 1.6.0_26 Java HotSpot(TM) 64-Bit Server VM

更新:运行建议的命令给出:

$ unzip -l BioClojure-1.0.0-SNAPSHOT-standalone.jar | grep -i -e "\.sf"
 49911  08-27-09 15:57   META-INF/RCSB-PDB.SF
     0  03-23-10 08:21   META-INF/maven/net.sf.alxa/
     0  03-23-10 08:21   META-INF/maven/net.sf.alxa/jlatexmath/
   929  03-23-10 08:20   META-INF/maven/net.sf.alxa/jlatexmath/pom.xml
   115  03-21-10 14:01   META-INF/maven/net.sf.alxa/jlatexmath/pom.properties
175241  08-17-11 20:25   META-INF/SELFSIGN.SF
     0  09-21-09 06:45   META-INF/maven/net.sf.opencsv/
     0  09-21-09 06:45   META-INF/maven/net.sf.opencsv/opencsv/
  5510  09-21-09 06:44   META-INF/maven/net.sf.opencsv/opencsv/pom.xml
   106  09-21-09 06:45   META-INF/maven/net.sf.opencsv/opencsv/pom.properties

通过阅读该问题中的评论,我的理解是,如果您将以下内容添加到您的中,您的问题就会消失project.clj

:uberjar-exclusions [#"foo.sf"] 

where foo.sf是您想要从 jar 中忽略的特定 .sf 文件。您可以通过运行来确定这一点:

unzip -l BioClojure-1.0.0-SNAPSHOT-standalone.jar | grep -i -e "\.sf"

建议的zip命令从 jar 中删除特定文件(ZIP 格式)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Leiningen 在构建可用的 uberjar 时遇到问题 的相关文章

  • 将数据库与 Clojure 结合使用

    有哪些使用 Clojure 数据库的方法 我从 Clojure 知道你可以用 Java 做任何事情 但这意味着我最终可能会使用一些过于复杂的东西 比如 Hibernate 这与 Clojure 的简单性相冲突 有什么建议或意见吗 Cloju
  • 如何编写 Clojure 宏来从字符串创建正则表达式?

    我正在创建一个方便的宏 部分便利在于可以仅使用字符串来指定正则表达式 而不是使用 re 表示法 我无法弄清楚的一部分是如何让宏获取字符串并将其重写为 Clojure 正则表达式 例如 生成 re 符号 我认为这是一个语法 转义问题 我的第一
  • “make install”将库安装在 /usr/lib 而不是 /usr/lib64

    我正在尝试在 64 位 CentOS 7 2 上构建并安装一个库 为了这个目的我正在跑步 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX usr DCMAKE C COMPILER
  • 如何为可运行的jar添加jvm参数?

    对于我正在创建的可运行 jar 它需要 xmx1024 作为 JVM 参数 我怎样才能做到这一点 或者有什么替代方案吗 您可以为程序要运行的每个平台提供启动脚本 例如在 Linux 上你可以有program sh java mx1024 j
  • 创建上下文后将 jar 文件添加到 pyspark

    我正在笔记本上使用 pyspark 并且不处理 SparkSession 的创建 我需要加载一个包含一些我想在处理 rdd 时使用的函数的 jar 您可以使用 jars 轻松完成此操作 但在我的特定情况下我无法做到这一点 有没有办法访问sp
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • 如何停止执行的 Jar 文件

    这感觉像是一个愚蠢的问题 但我似乎无法弄清楚 当我在 Windows 上运行 jar 文件时 它不会出现在任务管理器进程中 我怎样才能终止它 我已经尝试过 TASKKILL 但它对我也不起作用 On Linux ps ef grep jav
  • 构建流星应用程序后流星无法运行

    好的 我使用命令构建了一个流星应用程序 meteor build bundle debug server https my app url hosted on meteor Meteor 确实使用 cordova android pack
  • 尝试提取 jar 文件时出错

    我正在尝试使用以下命令提取 jar 文件 C Program Files Java jdk1 7 0 25 bin gt jar xf C Users MyJar jar 但出现错误 java io IOException META INF
  • JS 中的 .Jar 文件

    有谁知道如何在 JS 中访问 jar 文件 我已经用 Java 创建了类并作为 jar 文件导入 我想从 JS 文件访问该类 大家好 我感谢你们所有人 我尝试在 Firefox XUL 中使用 JS 列出文件夹中的文件 但我做不到 然后我决
  • iOS5 故事板错误:故事板在 iOS 4.3 及更早版本上不可用

    我使用故事板构建了一个小型应用程序 并且运行得很好 就在最终测试之前 我决定尝试一下它是否可以在 iOS 4 3 上运行 我点击项目设置中灰色的5 0 选择4 3 该应用程序无法构建 并显示以下错误消息 故事板在 iOS 4 3 及更早版本
  • 在 Windows 上从源代码构建 PhantomJS-2

    我正在尝试基于这些在 Windows 8 1 x64 上从源代码构建 PhantomJS 2 的开发版本指示 https github com ariya phantomjs wiki PhantomJS 2 但是我收到以下错误 mingw
  • 将 Kotlin .kt 类打包到 JAR 中

    我如何构建HelloWorld kt as a JAR以便它运行 thufir dur kotlin thufir dur kotlin kotlinc HelloWorld kt include runtime d HelloWorld
  • 我可以让 lein cloverage 跳过特定测试吗?

    我正在进行一个 Leiningen 项目 其集成测试注释如下 deftest manual test v3 preview preview client http localhost 10313 v3 preview 当我这样做时 这些测试
  • 致命错误:向量:没有这样的文件或目录

    我有一个 Android 项目 其中包含大量 C 本机代码 但是 我无法构建我的库 因为它无法找到 vector h 头文件 可能是什么问题 我在几乎所有页面中包含的示例 include
  • 是否有可能将 *.pdb 文件包含到发布版本中以查看错误行号?

    我做了一个项目 所有设置都是默认的 当我在调试模式 构建配置 调试 下运行它并遇到异常时 它转储到我的自定义日志记录机制 其中包含错误行号 但是当我运行发布构建时 记录相同的异常 没有行号 只有方法抛出和记录调用堆栈 是否有可能在发布配置
  • 使用 jar 依赖项构建 Android 库项目

    我已经被一个问题困扰了几天 但我不知道如何解决这个问题 我正在处理一个 Android 库项目 该项目正在使用 android sdk 提供的 Android 工具进行编译 在项目内部 我遵循 Android 项目的标准结构 我的 jar
  • 通过命令行参数更改默认的 ant 目标

    最近我被分配了一个任务 让ant能够为不同的环境构建war包 除了一项功能外 我几乎完成了 蚂蚁接受一个env参数类似 Denv DEV 并使用不同的配置文件来制作war包 但默认目标是start它将构建 部署并启动 tomcat 我不希望
  • 使用 eclipse 将 jar 包含到 apk 中

    我试图在我的 apk 文件中包含一个 jar 文件 我尝试了以下方法 将罐子复制到lib我的项目中的目录 将 jar 添加到路径 启用 jar 导出 只需将 jar 添加到我的项目路径 其他位置 启用 jar 导出 但apk不包含jar 当
  • Install4j:如何在安装结束时执行命令行 java -jar filename.jar

    在 Intall4j 中 在安装结束时 我只想通过执行如下命令行来初始化某些内容 java jar filename jar 我怎样才能归档这个任务install4j Thanks 将 运行可执行文件或批处理文件 操作添加到 安装屏幕 并设

随机推荐

  • ListView ColumnHeader.Name 为空字符串

    我创建了一个 WinFormsListView作为具有四列的详细视图 我在设计器中为每一列指定了名称 但是在访问每一列时ColumnHeader通过ListView Columns属性 我找到每个ColumnHeader Name是一个空字
  • TextBoxFor @Value(大写)而不是@value

    这只是出于好奇 为什么这段代码有效 Html TextBoxFor x gt x Age new Value 0 这不是 Html TextBoxFor x gt x Age new value 0 请注意其中的大写 V Value I k
  • 如何从左向右滑动文本和图像并具有滑动效果[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • PySpark:如何将带逗号的列指定为小数

    我正在使用 PySpark 并加载csv文件 我有一列包含欧洲格式的数字 这意味着逗号替换点 反之亦然 例如 我有2 416 67代替2 416 67 My data in csv file looks like this ID Reven
  • 通过分布式数据库聚合作业优化网络带宽

    我有一个分布式 联合数据库 结构如下 数据库分布在三个地理位置 节点 每个节点集群有多个数据库 关系数据库是 PostgreSQL MySQL Oracle 和 MS SQL Server 的混合体 非关系数据库是 MongoDB 或 Ca
  • 将 HttpApi 与 I/O 完成端口结合使用

    我刚刚偶然发现了微软的HTTP 服务器 API http msdn microsoft com en us library aa364510 28v vs 85 29 aspx 简介中写道 HTTP 服务器 API 使应用程序能够通过 HT
  • sqlite 插入表中 select * from

    我需要在 Android 应用程序中将数据从一个表移动到另一个表 我想使用以下sql insert into MYTABLE2 select id STATUS risposta DATETIME now data ins from MYT
  • void、VOID、C 和 C++

    我有以下代码 typedef void VOID int f void int g VOID 它在 C 中编译得很好 在 Fedora 10 上使用 gcc 4 3 2 编译为 C 的相同代码给出以下错误 void c 3 error
  • 使用 JPype - 如何访问 JDBC 元数据函数

    我在用着杰 德贝API https launchpad net jaydebeapi它使用 JPype 加载 FileMaker 的 JDBC 驱动程序并提取数据 但我也希望能够获取所有表的列表在数据库中 In the JDBC 文档 ht
  • 动态 SQL 和 where case 哪个更好?

    我需要创建一个带有 12 个参数的存储过程 并使用这些参数的不同组合来过滤查询 所有 12 个参数都不是强制性的 就好像我传递 3 5 或 12 个参数取决于用户输入的搜索输入一样 我可以通过两种方式创建 即使用动态 SQL 查询或使用 C
  • C#.NET 将解决方案中各个项目的 settings.settings 文件编译为 1 个配置文件

    我有一个解决方案 其中一个项目是业务层 另一个项目是Web前端 其中有BL项目作为参考 它们每个都有自己的 settings settings 文件 但在构建时 BL 配置文件不会复制到 bin 目录中 我们之前解决这个问题的方法是将 BL
  • Google App Engine 实例未启动

    我有一个 GAE 申请 通常 当我部署应用程序的某个版本时 几乎会自动为其创建一个实例 但有时 GAE 不会启动新实例 我可以等24小时 但什么也没发生 我必须多次部署相同的版本 直到最终 GAE 为其创建一个实例 坦率地说 这很烦人 这种
  • 从 DecorView@2da7146[MyActivity] 中找不到 ViewTreeLifecycleOwner

    从撰写更新后alpha 11 to alpha 12 or beta 01 每当我打开具有撰写视图的活动或片段时 我都会遇到此崩溃 我在用AppCompatActivity它实现了LifecycleOwner 所以这非常奇怪 java la
  • 为什么 Windows 批处理文件“exit”不能与“||”一起使用?

    批处理 命令脚本中的通常建议是使用exit b设置时退出ERRORLEVEL来指示错误 然而这与 CMD 的配合不太好 and 运营商 如果我在 CMD 命令行运行这些 C gt echo exit b 1 gt foo cmd C gt
  • Firefox 中的文件下载对话框

    我正在使用firefox进行selenium python编程 自动开始下载并保存文件 我已经完成了所有操作 但无法下载csv文件 我的python版本是2 6 6 我的selenium版本是最新版本 我也尝试使用以下链接 即 fp web
  • “AnonymousUser”对象不可迭代

    if not request user is authenticated return None try return ClientProfile objects get user request user except ClientPro
  • solr + haystack + django 我在哪里放置 schema.xml?

    我刚刚安装Solr and Haystack for a Django我正在做的项目 下列的this http docs haystacksearch org dev tutorial html Haystack教程 我创建了一个 sche
  • Ocaml 模块和包的区别

    我基本上是在尝试遵循这篇文章中的 stackoverflow 答案 OCaml 中 HttpRequest 的最佳模块是什么 https stackoverflow com questions 14134116 what is the be
  • ASP.NET MVC 6 中的属性路由正则表达式约束错误

    我添加以下路由属性 HttpGet Route add Route id int inn regex 0 9 incBalance range 0 1 dateSet datetime dateNext datetime public IA
  • Leiningen 在构建可用的 uberjar 时遇到问题

    我们正在尝试与 Leiningen 一起构建我们的 Clojure 项目 我们通过执行以下操作成功创建了 uberjar 前提条件 project clj 文件列出了依赖项 main my project core在项目 clj中 core