¿Cómo puede un programa Clojure encontrar su propio MANIFEST.MF (suponiendo que está empaquetado en un archivo JAR).programa Clojure leyendo su propio MANIFEST.MF
estoy tratando de hacerlo desde mi función "-main", pero no puedo encontrar una clase que se utiliza en el siguiente código:
(.getValue
(..
(java.util.jar.Manifest.
(.openStream
(java.net.URL.
(str
"jar:"
(..
(class **WHAT-GOES-HERE**)
getProtectionDomain
getCodeSource
getLocation)
"!/META-INF/MANIFEST.MF"))))
getMainAttributes)
"Build-number"))
Gracias.
Gracias, esto fue útil. Hice un poco de refactorización porque soy obsesivo con eso. Esto es lo que terminé con: (defn conseguir-función de la localización [SYM] (.. (sym clase) getProtectionDomain getCodeSource getLocation)) (defn get-manifiesto-atributos [] (let [ubicación (get-function-location get-manifest-attributes)] (when-not (nil? location) (-> (str "jar:" location "! /META-INF/MANIFEST.MF") (URL) (.openStream) (Manifiesto) (.getMainAttributes))))) –
Corrección: pasar el símbolo a la función no era trabajando correctamente Terminé cambiando el nombre de get-function-location a get-location y pasando get-location a la clase. –