Ich habe folgende Inhalte in der Datei src/main/clojure/za/co/pb/maven_test/test.clj
:
(ns za.co.pb.maven-test.test
(:gen-class))
(defn -main []
(println "Hallo Welt!"))
Ich habe auch ein POM, das die notwendigen Abhängigkeiten zum clojure-maven-plugin mit der Ausführung von "compile" enthält.
Wenn ich den Befehl mvn package
ausführe, erhalte ich eine Datei namens target/maven-test-1.0-SNAPSHOT.jar
und wenn ich in den Klassenordner schaue, habe ich diese Dateien im Ordner target/classes/za/co/pb/maven_test
:
test.class
test.clj
test__init.class
test$loading__4410__auto__.class
test$_main.class
Dies ist meines Wissens nach angemessen.
Wenn ich jedoch diesen Befehl ausführe:
java -cp target\app-1.0-SNAPSHOT.jar za.co.pb.maven_test.test
Erhalte ich dies:
Ausnahme in thread "main" java.lang.NoClassDefFoundError: clojure/lang/IFn
Verursacht durch: java.lang.ClassNotFoundException: clojure.lang.IFn
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Die Hauptklasse za.co.pb.maven_test.test wurde nicht gefunden. Das Programm wird beendet.