gpt4 book ai didi

clojure - leiningen 有多个主要类(class)

转载 作者:行者123 更新时间:2023-12-02 09:28:11 24 4
gpt4 key购买 nike

我希望 leiningen 有两个主要类(或更多),然后能够在 java 命令行中选择哪一个。例如我有:

(ns abc (:gen-class))
(defn -main [] (println "abc"))

(ns def (:gen-class))
(defn -main [] (println "def"))

project.clj 具有:

(defproject my-jar "0.0.1"
:description "test"
:dependencies [
]
:main abc)

然后我使用 lein uberjar 进行构建,并运行:

java -cp my-jar-0.0.1-standalone.jar abc
java -cp my-jar-0.0.1-standalone.jar def

我知道,当我在 project.clj 中指定 :main abc 时,它会将其调用为 list 中的主类,但我无法在不输入的情况下运行它某事。但无论哪种方式,当我尝试运行 'def' main 时,我都会得到一个未找到的类:

Exception in thread "main" java.lang.NoClassDefFoundError: def

最佳答案

这至少适用于 leiningen 2.0+

(defproject my-jar "0.0.1"
:description "test"
:dependencies [
]
:profiles {:main-a {:main abc}
{:main-b {:main def}}
:aliases {"main-a" ["with-profile" "main-a" "run"]
"main-b" ["with-profile" "main-b" "run"]})

然后你可以像这样运行每个主程序:

lein main-a
lein main-b

扩展为:

lein with-profile main-a run
lein with-profile main-b run

我在我的一个项目中使用了它,效果非常好。

关于clojure - leiningen 有多个主要类(class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11023762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com