Recently, I attempted to get started with the boot
build system by
running the boot-cljs-example repository.
On my system, while running the suggested build script:
1
| boot serve -d target/ watch speak reload cljs-repl cljs -sO none
|
I ran into the following error:
1
2
3
4
5
6
7
8
| james@james-desktop: boot serve -d target/ watch speak reload cljs-repl cljs -sO none
WARNING: test already refers to: #'clojure.core/test in namespace: boot.user, being replaced by: #'boot.user/test
clojure.lang.ExceptionInfo: java.lang.NoClassDefFoundError: clojure/lang/IFn, compiling:(org/httpkit/server.clj:23:11)
data: {:file "/tmp/boot.user6465695604758877332.clj", :line 21}
java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: clojure/lang/IFn, compiling:(org/httpkit/server.clj:23:11)
clojure.lang.Compiler$CompilerException: java.lang.NoClassDefFoundError: clojure/lang/IFn, compiling:(org/httpkit/server.clj:23:11)
java.lang.NoClassDefFoundError: clojure/lang/IFn
java.lang.ClassNotFoundException: clojure.lang.IFn
|
To fix this: note that boot relies on a boot.properties
file for version information
and uses that instead of your system versions if set.
To fix the error above, change your BOOT_VERSION
in boot.properties
to be 2.7.2
instead of 2.5.5
.
Happy coding! For extra information, see the version information below:
Version & System Notes
To do so, I installed the default version of boot as of the time of writing.
The version output of this version is:
1
2
3
4
5
6
| james@james-desktop:$ boot --version
#http://boot-clj.com
#Fri Dec 01 03:51:00 EST 2017
BOOT_CLOJURE_NAME=org.clojure/clojure
BOOT_CLOJURE_VERSION=1.8.0
BOOT_VERSION=2.7.2
|
Additionally, I am running Java 1.8. and node 7.10 via Ubuntu 16.04’s
node package, but with nvm (node version manager) installed.