diff options
Diffstat (limited to '')
| -rw-r--r-- | lux-lein/src/leiningen/lux/packager.clj | 33 | 
1 files changed, 21 insertions, 12 deletions
| diff --git a/lux-lein/src/leiningen/lux/packager.clj b/lux-lein/src/leiningen/lux/packager.clj index 73d672b75..eafa4ed06 100644 --- a/lux-lein/src/leiningen/lux/packager.clj +++ b/lux-lein/src/leiningen/lux/packager.clj @@ -33,20 +33,23 @@                (->> (doseq [[name v] (get project :manifest)                             :let [real-v (if (string? v) v (v project))]]))))))) +(def excluded-stale "leiningen.core.classpath.extract-native-dependencies") +  (defn ^:private write-class!    "(-> Text File JarOutputStream Null)"    [^String path ^File file ^JarOutputStream out] -  (with-open [in (new BufferedInputStream (new FileInputStream file))] -    (let [buffer (byte-array buffer-size)] -      (doto out -        (.putNextEntry (new JarEntry (str path "/" (.getName file)))) -        (-> (.write buffer 0 bytes-read) -            (->> (when (not= -1 bytes-read)) -                 (loop [bytes-read (.read in buffer)]))) -        (.flush) -        (.closeEntry) -        )) -    )) +  (when (not (= excluded-stale (.getName file))) +    (with-open [in (new BufferedInputStream (new FileInputStream file))] +      (let [buffer (byte-array buffer-size)] +        (doto out +          (.putNextEntry (new JarEntry (str path "/" (.getName file)))) +          (-> (.write buffer 0 bytes-read) +              (->> (when (not= -1 bytes-read)) +                   (loop [bytes-read (.read in buffer)]))) +          (.flush) +          (.closeEntry) +          )) +      )))  (defn ^:private write-module!    "(-> File JarOutputStream Null)" @@ -101,6 +104,7 @@          (let [entry-name (.getName entry)]            (if (and (not (.isDirectory entry))                     (not (.startsWith entry-name "META-INF/maven/")) +                   (not (.startsWith entry-name "META-INF/leiningen/"))                     (not (some (fn [exclusion]                                  (re-find exclusion entry-name))                                (get project :uberjar-exclusions))) @@ -127,6 +131,10 @@          ))))  (def default-manifest-file (str "." java.io.File/separator "AndroidManifest.xml")) +(def jar-exclusions ["com/github/luxlang/luxc-jvm" +                     "org/clojure/clojure" +                     "org/clojure/core.match" +                     "org/ow2/asm/asm-all"])  ;; [Resources]  (defn ^:private package-jvm @@ -161,7 +169,8 @@              (when (not (get-in project [:lux :android]))                (write-resources! out resources-dirs))              (doseq [^String file-path deps] -              (add-jar! (new File file-path) project !all-jar-files)) +              (when (not-any? #(.contains file-path %) jar-exclusions) +                (add-jar! (new File file-path) project !all-jar-files)))              (doseq [[_ [entry-data entry]] @!all-jar-files]                (doto out                  (.putNextEntry (doto entry (.setCompressedSize -1))) | 
