2024 Clojure状态调查中分享您的想法!

欢迎!请参阅关于页面以获取更多关于如何使用本站的信息。

+1
Clojure
已关闭

{{target/clojure.jar}}(或Maven仓库中的jar文件)中的 манифест 中设置的 Main-Class,给人一种它们可以作为独立JAR打包应用运行的印象。

但是,使用
`java -jar clojure-${version}.jar`
的结果是

`

Exception in thread "main" java.lang.ExceptionInInitializerError
at clojure.main.<clinit>(main.java:20)
Caused by: Syntax error compiling at (clojure/main.clj:1:1).
at clojure.lang.Compiler.load(Compiler.java:7647)
...
... 1 more
Caused by: java.io.FileNotFoundException: Could not locate clojure/spec/alpha__init.class, clojure/spec/alpha.clj or clojure/spec/alpha.cljc on classpath.
at clojure.lang.RT.load(RT.java:466)
at clojure.lang.RT.load(RT.java:428)

`

(当然,在本地配置文件中直接构建的顶层 {{clojure.jar}} 的依赖项郊外时,它会完美运行。)

然而,对于 {{java -jar}},类路径不能在命令行中修改({{-cp}}被忽略),只能作为manifest中的Class-Path条目。
我希望看到更清晰的

`没有主manifest属性...`
由{{java}}报告,而不是这种情况下出现的ExIIError和堆栈跟踪。

审核: Alex Miller - 正确地构建了不带主类的正常Clojure,但仍然继续构建包含spec依赖项的本地jar文件。

关闭的备注:

5 个答案

0

评论由:alexmiller发表

谢谢,是个好主意。

0

评论由:pzygielo发表

我看到已经将1.11分配为修复版本,但我也看到了针对1.10.1的准备。CLJ-2459能否也包含在1.10.1中?

0

评论由:alexmiller发表

我们试图使1.10.1的变化非常集中,因此它将等待到1.11。

0

评论由:pzygielo发表

明白了,谢谢。

0
参考:https://clojure.atlassian.net/browse/CLJ-2459(由pzygielo报告)
...