How can a Clojure program find its own MANIFEST.MF (assuming it is packaged in a JAR file).
I am trying to do this from my "-main" function, but I can't find a class to use in the following code:
(.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"))
Thanks.
This seems to work reliably:
(defn set-version
"Set the version variable to the build number."
[]
(def version
(.getValue (.. (Manifest.
(.openStream
(URL.
(str "jar:"
(.getLocation
(.getCodeSource
(.getProtectionDomain org.example.myproject.thisfile)))
"!/META-INF/MANIFEST.MF"))))
getMainAttributes)
"Build-number")))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With