-
Notifications
You must be signed in to change notification settings - Fork 1
/
classpath.clj
25 lines (22 loc) · 952 Bytes
/
classpath.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(ns cruler.classpath
(:refer-clojure :exclude [add-classpath])
(:require [cemerick.pomegranate :as pomegranate]
[clojure.java.io :as io])
(:import (clojure.lang DynamicClassLoader)))
(defn ensure-dynamic-classloader []
(let [thread (Thread/currentThread)
context-class-loader (.getContextClassLoader thread)
compiler-class-loader (.getClassLoader clojure.lang.Compiler)]
(when-not (instance? DynamicClassLoader context-class-loader)
(.setContextClassLoader
thread (DynamicClassLoader. (or context-class-loader
compiler-class-loader))))))
(defn add-classpaths
[base paths]
(doseq [path paths]
(pomegranate/add-classpath (io/file base path))))
(defn add-deps [deps]
(pomegranate/add-dependencies
:coordinates deps
:repositories (merge cemerick.pomegranate.aether/maven-central
{"clojars" "https://clojars.org/repo"})))