Clojure lein uberjar: java.lang.ClassNotFoundException

坦率

我有一个 Clojure 库,它有两个gen-class指令。当我运行时lein run,没有问题。但是,当我运行时lein uberjar,出现错误:

$ lein uberjar
Compiling 6 source files to /Users/frank/src/user/target/uberjar/classes
Compiling user.common
Compiling user.core
java.lang.ClassNotFoundException: user.server.UserAuthenticationServer, compiling:(user/core.clj:15:30)
Exception in thread "main" java.lang.ClassNotFoundException: user.server.UserAuthenticationServer, compiling:(user/core.clj:15:30)
  at clojure.lang.Compiler.analyzeSeq(Compiler.java:6926)
.....
  at clojure.lang.Compiler.analyze(Compiler.java:6701)
Caused by: java.lang.ClassNotFoundException: user.server.UserAuthenticationServer
  at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
...
  at clojure.lang.Compiler.analyzeSeq(Compiler.java:6919)
  ... 86 more

除了生成的Java文件,还有就是project.cljserver.cljcore.clj

项目.clj

(defproject user "0.1.0-SNAPSHOT"
  :dependencies [[org.clojure/clojure                        "1.9.0-alpha14"]
                 [io.grpc/grpc-core                          "1.7.0"]
                 [io.grpc/grpc-netty                         "1.7.0"
                  :exclusions [io.grpc/grpc-core]]
                 [io.grpc/grpc-protobuf                      "1.7.0"]
                 [io.grpc/grpc-stub                          "1.7.0"]]
  :main ^:skip-aot user.core
  :aot [user.server]
  :target-path "target/%s"
  :source-paths ["src/clj"]
  :java-source-paths ["src/generated/proto"
                      "src/generated/grpc"]
  :profiles {:uberjar {:aot :all}})

核心文件

(ns user.core
  (:import [io.grpc Server ServerBuilder])
  (:gen-class))

(defonce start-server-atom   (atom nil))
(def port                    8080)

(defn start-server []
  (when-not @start-server-atom
    (reset! start-server-atom
            (-> (ServerBuilder/forPort port)
                (.addService (new user.server.UserAuthenticationServer))
                .build
                .start
                .awaitTermination))))

(defn -main
  [& args]
  (start-server))

服务器.clj

(ns user.server
  (:gen-class
   :main false
   :name user.server.UserAuthenticationServer
   :extends xyz.skroo.user.UserAuthenticationGrpc$UserAuthenticationImplBase))

(defn -startUserAuthentication [this req res]
  (.onNext res req)
  (.onCompleted res))

这很奇怪,因为这是有效的,我认为编译时顺序发生了变化,现在我无法生成独立的 jar。

加里

:profiles {:uberjar {:aot :all}} 意味着当您运行 uberjar 时,它将尝试编译所有命名空间。当您执行 lein run 时,它只编译 :aot 键中的命名空间。

尝试将 uberjar 配置文件更新为仅适用于服务器命名空间,看看是否有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

添加clojure依赖项并运行lein uberjar会导致java.lang.IllegalAccessError

来自分类Dev

Lein ring uberjar

来自分类Dev

Clojure性能:REPL与uberjar

来自分类Dev

如何使用“ lein uberjar”正确创建一个uberjar?

来自分类Dev

错误java.lang.ClassNotFoundException

来自分类Dev

java.lang.ClassNotFoundException:TopologyMain

来自分类Dev

Java.Lang.ClassNotFoundException WebAuthenticatorActivity

来自分类Dev

让Clojure运行(lein repl)

来自分类Dev

让Clojure运行(lein repl)

来自分类Dev

使用Lein Uberjar时如何省略资源目录

来自分类Dev

lein uberjar-没有正确设置主类?

来自分类Dev

使用Lein Uberjar时如何省略资源目录

来自分类Dev

Maven:Jboss上的java.lang.ClassNotFoundException

来自分类Dev

智能IDEA:java.lang.ClassNotFoundException

来自分类Dev

指定类的java.lang.ClassNotFoundException

来自分类Dev

通用数学:java.lang.ClassNotFoundException

来自分类Dev

java.lang.ClassNotFoundException:找不到类

来自分类Dev

Weblogic .ear部署java.lang.ClassNotFoundException

来自分类Dev

火花提交java.lang.ClassNotFoundException

来自分类Dev

Scala-spark-corenlp-java.lang.ClassNotFoundException

来自分类Dev

Xamarin.Android java.lang.ClassNotFoundException

来自分类Dev

java.lang.ClassNotFoundException:一个

来自分类Dev

JDBC程序中的java.lang.ClassNotFoundException

来自分类Dev

指定类的java.lang.ClassNotFoundException

来自分类Dev

Xamarin.Android java.lang.ClassNotFoundException

来自分类Dev

Apache Ignite - java.lang.ClassNotFoundException:未知对

来自分类Dev

获取错误 java.lang.ClassNotFoundException: AppLoader

来自分类Dev

KSQL Datagen - java.lang.ClassNotFoundException: MonitoringProducerInterceptor

来自分类Dev

UberJar 不起作用:Intellij Maven java.lang.NoClassDefFoundError with Jackson YAML

Related 相关文章

  1. 1

    添加clojure依赖项并运行lein uberjar会导致java.lang.IllegalAccessError

  2. 2

    Lein ring uberjar

  3. 3

    Clojure性能:REPL与uberjar

  4. 4

    如何使用“ lein uberjar”正确创建一个uberjar?

  5. 5

    错误java.lang.ClassNotFoundException

  6. 6

    java.lang.ClassNotFoundException:TopologyMain

  7. 7

    Java.Lang.ClassNotFoundException WebAuthenticatorActivity

  8. 8

    让Clojure运行(lein repl)

  9. 9

    让Clojure运行(lein repl)

  10. 10

    使用Lein Uberjar时如何省略资源目录

  11. 11

    lein uberjar-没有正确设置主类?

  12. 12

    使用Lein Uberjar时如何省略资源目录

  13. 13

    Maven:Jboss上的java.lang.ClassNotFoundException

  14. 14

    智能IDEA:java.lang.ClassNotFoundException

  15. 15

    指定类的java.lang.ClassNotFoundException

  16. 16

    通用数学:java.lang.ClassNotFoundException

  17. 17

    java.lang.ClassNotFoundException:找不到类

  18. 18

    Weblogic .ear部署java.lang.ClassNotFoundException

  19. 19

    火花提交java.lang.ClassNotFoundException

  20. 20

    Scala-spark-corenlp-java.lang.ClassNotFoundException

  21. 21

    Xamarin.Android java.lang.ClassNotFoundException

  22. 22

    java.lang.ClassNotFoundException:一个

  23. 23

    JDBC程序中的java.lang.ClassNotFoundException

  24. 24

    指定类的java.lang.ClassNotFoundException

  25. 25

    Xamarin.Android java.lang.ClassNotFoundException

  26. 26

    Apache Ignite - java.lang.ClassNotFoundException:未知对

  27. 27

    获取错误 java.lang.ClassNotFoundException: AppLoader

  28. 28

    KSQL Datagen - java.lang.ClassNotFoundException: MonitoringProducerInterceptor

  29. 29

    UberJar 不起作用:Intellij Maven java.lang.NoClassDefFoundError with Jackson YAML

热门标签

归档