File tree 3 files changed +15
-7
lines changed
3 files changed +15
-7
lines changed Original file line number Diff line number Diff line change @@ -196,6 +196,7 @@ Supported command-line options are:
196
196
--aliases <alias:alias:...> Colon-separated list of alias names to include from deps file. Defaults to nothing
197
197
--target <file> Jar file to ouput to. Defaults to 'target/<directory-name>.jar'
198
198
--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
200
--level (debug|info|warn|error) Verbose level. Defaults to debug
200
201
```
201
202
Original file line number Diff line number Diff line change 111
111
112
112
(defn package-manifest
113
113
[opts out]
114
- (when-some [main-class (:main-class opts)]
115
- (let [manifest (str " Manifest-Version: 1.0\n "
116
- (format " Created-By: %s (%s)\n " (System/getProperty " java.version" ) (System/getProperty " java.vm.vendor" ))
114
+ (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)]
117
119
(format " Main-Class: %s\n " main-class))
118
- in (io/input-stream (.getBytes manifest))]
119
- (copy-stream in " META-INF/MANIFEST.MF" (FileTime/from (Instant/now )) out))))
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)]
123
+ (format " Multi-Release: true\n " )))
124
+ in (io/input-stream (.getBytes manifest))]
125
+ (copy-stream in " META-INF/MANIFEST.MF" (FileTime/from (Instant/now )) out)))
120
126
121
127
122
128
(defn package-libs [deps-map out]
Original file line number Diff line number Diff line change 20
20
(->> (remove str/blank?)
21
21
(map keyword)
22
22
(into #{})))
23
- main-class (get args " --main-class" )
23
+ main-attrs {:main-class (get args " --main-class" )
24
+ :multi-release (= (get args " --multi-release" ) " true" )}
24
25
level (keyword (or (get args " --level" ) " debug" ))]
25
26
(binding [api/level level]
26
27
(deps.dir/with-dir deps-dir
27
28
(api/package
28
29
(edn/read-string (slurp deps-file))
29
30
target
30
- { :aliases aliases : main-class main-class} )))
31
+ ( assoc main-attrs :aliases aliases) )))
31
32
(shutdown-agents )))
You can’t perform that action at this time.
0 commit comments