tobotras: (Default)
[personal profile] tobotras
Как в программе показать -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)))

Date: 2015-04-26 02:41 pm (UTC)
From: [identity profile] zinal.livejournal.com
Вполне изьящно, за исключением "зашитого" имени класса.
А способ получить текущий класс отсутствует? В Жабном окружении это бывает весьма полезно - например, класслоадер текущего класса порой просто необходим.
Edited Date: 2015-04-26 02:42 pm (UTC)

Profile

tobotras: (Default)
tobotras

December 2024

S M T W T F S
123 4567
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 7th, 2025 02:03 pm
Powered by Dreamwidth Studios