clojure / clojure-site

clojure.org site

Home Page:https://clojure.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`Prep libs` is missing tools.build usage

frenchy64 opened this issue · comments

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}}