You are viewing your journal

Кложурное - Оживший юзерпик

апр. 26, 2015

05:35 pm - Кложурное

Previous Entry Редактировать запись Редактировать метки В избранное Поделиться Отслеживать Next Entry

Как в программе показать -version, прочитав его из project.clj?

project.clj:

(def my-version "9.99")
(defproject my-project my-version
  :manifest {"Implementation-Version" ~my-version}
   etc)


core.clj:
(defn implementation-version []
  ;; Кажем версию софтины. Пропертя работает в lein repl, а getPackage().getImplementationVersion()
  ;; работает в JAR
  (or (System/getProperty "my.version")
         ;; Как сюда не хардкодить класс? Я думал, *ns*, но нет
      (-> (eval 'my.package.core) .getPackage .getImplementationVersion)))

(defn -main [& args]
  (println "I am the project, version" (implementation-version)))

Comments:

[User Picture]
From: zinal
Date:26 Апрель 2015 17:41 (местное)
Удалить Spam Скрыть Заморозить Отслеживать
(Link)
Вполне изьящно, за исключением "зашитого" имени класса.
А способ получить текущий класс отсутствует? В Жабном окружении это бывает весьма полезно - например, класслоадер текущего класса порой просто необходим.

Edited at 2015-04-26 17:42 (local)
(Ответить) (Thread)

Mass Action

Групповое действие над комментариями: