`Prep libs` is missing tools.build usage
frenchy64 opened this issue · comments
Ambrose Bonnaire-Sergeant commented
The Prep libs section has the following example:
{:paths ["src" "target/classes"]
:deps/prep-lib
{:ensure "target/classes"
:alias :build
:fn compile-java}}
It does not explain what :alias :build
or :fn compile-java
means. After some searching, it would have helped to know you also need (AFAICT):
;; prep.clj
(ns prep
(:require [clojure.tools.build.api :as b]))
(def class-dir "target/classes")
(def basis (b/create-basis {:project "deps.edn"}))
(defn compile-java [_]
(b/javac {:src-dirs ["java"]
:class-dir class-dir
:basis basis
:javac-opts ["-source" "8" "-target" "8"]}))
;; deps.edn
:deps/prep-lib
{:ensure "target/classes"
:alias :prep
:fn compile-java}
:aliases {:prep {:extra-deps {io.github.clojure/tools.build {:git/tag "v0.5.1" :git/sha "21da7d4"}}
:ns-default prep}}
Ambrose Bonnaire-Sergeant commented
@puredanger Thanks!