Skip to content

Commit 74faaf0

Browse files
committed
0.1.9
1 parent e6ed178 commit 74faaf0

File tree

6 files changed

+48
-33
lines changed

6 files changed

+48
-33
lines changed

Diff for: README.md

+12-7
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ with following content:
3838
uberdeps/deps.edn:
3939

4040
```clojure
41-
{:deps {uberdeps {:mvn/version "0.1.8"}}}
41+
{:deps {uberdeps {:mvn/version "0.1.9"}}}
4242
```
4343

4444
uberdeps/package.sh:
@@ -102,7 +102,7 @@ deps.edn:
102102
...
103103
:aliases {
104104
:uberdeps {
105-
:deps {uberdeps {:mvn/version "0.1.8"}}
105+
:deps {uberdeps {:mvn/version "0.1.9"}}
106106
:main-opts ["-m" "uberdeps.uberjar"]
107107
}
108108
}
@@ -129,14 +129,14 @@ You can invoke Uberdeps from command line at any time without any prior setup.
129129
Add to your bash aliases:
130130

131131
```sh
132-
clj -Sdeps '{:deps {uberdeps {:mvn/version "0.1.8"}}}' -m uberdeps.uberjar
132+
clj -Sdeps '{:deps {uberdeps {:mvn/version "0.1.9"}}}' -m uberdeps.uberjar
133133
```
134134

135135
Or add to your `~/.clojure/deps.edn`:
136136

137137
```clojure
138138
:aliases {
139-
:uberjar {:deps {uberdeps {:mvn/version "0.1.8"}}
139+
:uberjar {:deps {uberdeps {:mvn/version "0.1.9"}}
140140
:main-opts ["-m" "uberdeps.uberjar"]}
141141
}
142142
```
@@ -196,7 +196,7 @@ Supported command-line options are:
196196
--aliases <alias:alias:...> Colon-separated list of alias names to include from deps file. Defaults to nothing
197197
--target <file> Jar file to ouput to. Defaults to 'target/<directory-name>.jar'
198198
--main-class <ns> Main class, if it exists (e.g. app.core)
199-
--multi-release (true|false) Add a multi-release flag to the manifest. Defaults to false.
199+
--multi-release Add Multi-Release: true to the manifest. Off by default.
200200
--level (debug|info|warn|error) Verbose level. Defaults to debug
201201
```
202202

@@ -214,13 +214,18 @@ Supported command-line options are:
214214

215215
## Changelog
216216

217+
### 0.1.9 - Mar 31, 2020
218+
219+
- `--multi-release` / `:multi-release?` added #22 #23 thx @gavinkflam
220+
- tools.deps updated to 0.8.677
221+
217222
### 0.1.8 - Jan 13, 2020
218223

219224
- Resolve `:paths` relative to `deps.edn` location
220225

221226
### 0.1.7 - Dec 20, 2019
222227

223-
- --main-class / :main-class option added #13 #18 thx @gnarroway
228+
- `--main-class` / `:main-class` option added #13 #18 thx @gnarroway
224229
- tools.deps updated to 0.8.599
225230

226231
### 0.1.6 - Oct 4, 2019
@@ -253,6 +258,6 @@ Supported command-line options are:
253258

254259
## License
255260

256-
Copyright © 2019 Nikita Prokopov
261+
Copyright © 2019 Nikita Prokopov.
257262

258263
Licensed under MIT (see [LICENSE](LICENSE)).

Diff for: deps.edn

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{:deps
22
{org.clojure/clojure {:mvn/version "1.10.1"}
3-
org.clojure/tools.deps.alpha {:mvn/version "0.8.599"}}}
3+
org.clojure/tools.deps.alpha {:mvn/version "0.8.677"}}}

Diff for: project.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(defproject uberdeps "0.1.8"
1+
(defproject uberdeps "0.1.9"
22
:description "Uberjar builder for deps.edn"
33
:license {:name "MIT" :url "https://github.com/tonsky/uberdeps/blob/master/LICENSE"}
44
:url "https://github.com/tonsky/uberdeps"

Diff for: src/uberdeps/api.clj

+3-7
Original file line numberDiff line numberDiff line change
@@ -112,14 +112,10 @@
112112
(defn package-manifest
113113
[opts out]
114114
(let [manifest (str "Manifest-Version: 1.0\n"
115-
(format "Created-By: %s (%s)\n"
116-
(System/getProperty "java.version")
117-
(System/getProperty "java.vm.vendor"))
118-
(if-let [main-class (:main-class opts)]
115+
"Created-By: " (System/getProperty "java.version") " (" (System/getProperty "java.vm.vendor") ")\n"
116+
(when-some [main-class (:main-class opts)]
119117
(format "Main-Class: %s\n" main-class))
120-
; Indicate that we are generating a multi-release JAR.
121-
; https://openjdk.java.net/jeps/238
122-
(if-let [multi-release (:multi-release opts)]
118+
(when (:multi-release? opts)
123119
(format "Multi-Release: true\n")))
124120
in (io/input-stream (.getBytes manifest))]
125121
(copy-stream in "META-INF/MANIFEST.MF" (FileTime/from (Instant/now)) out)))

Diff for: src/uberdeps/uberjar.clj

+27-17
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,36 @@
77
[clojure.tools.deps.alpha.util.dir :as deps.dir]))
88

99

10-
(defn -main [& {:as args}]
11-
(let [deps-file (or (get args "--deps-file") "deps.edn")
12-
deps-dir (-> (io/file deps-file) (.getCanonicalFile) (.getParentFile))
13-
target (or (get args "--target")
14-
(as-> (io/file ".") %
15-
(.getCanonicalFile %)
16-
(.getName %)
17-
(str "target/" % ".jar")))
18-
aliases (-> (or (get args "--aliases") "")
19-
(str/split #":")
20-
(->> (remove str/blank?)
21-
(map keyword)
22-
(into #{})))
23-
main-attrs {:main-class (get args "--main-class")
24-
:multi-release (= (get args "--multi-release") "true")}
25-
level (keyword (or (get args "--level") "debug"))]
10+
(defn get-option-value [args option]
11+
(->> args (drop-while #(not= % option)) second))
12+
13+
14+
(defn get-option [args option]
15+
(some #(= option %) args))
16+
17+
18+
(defn -main [& args]
19+
(let [deps-file (or (get-option-value args "--deps-file") "deps.edn")
20+
deps-dir (-> (io/file deps-file) (.getCanonicalFile) (.getParentFile))
21+
target (or (get-option-value args "--target")
22+
(as-> (io/file ".") %
23+
(.getCanonicalFile %)
24+
(.getName %)
25+
(str "target/" % ".jar")))
26+
aliases (-> (or (get-option-value args "--aliases") "")
27+
(str/split #":")
28+
(->> (remove str/blank?)
29+
(map keyword)
30+
(into #{})))
31+
opts {:main-class (get-option-value args "--main-class")
32+
:multi-release? (get-option args "--multi-release")
33+
:aliases aliases}
34+
level (or (some-> (get-option-value args "--level") keyword)
35+
:debug)]
2636
(binding [api/level level]
2737
(deps.dir/with-dir deps-dir
2838
(api/package
2939
(edn/read-string (slurp deps-file))
3040
target
31-
(assoc main-attrs :aliases aliases))))
41+
opts)))
3242
(shutdown-agents)))

Diff for: test/multi_release.edn

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
; see https://github.com/tonsky/uberdeps/issues/22
2+
{:deps
3+
{org.apache.logging.log4j/log4j-api {:mvn/version "2.13.1"}
4+
org.apache.logging.log4j/log4j-core {:mvn/version "2.13.1"}}}

0 commit comments

Comments
 (0)