Merge pull request #1709 from hugoduncan/allow-all-non-default-profiles-in-jar

Fix inclusion of explicitly added profiles in jar
This commit is contained in:
Phil Hagelberg 2014-10-11 20:04:53 -07:00
commit 7b68061366
2 changed files with 17 additions and 1 deletions

View file

@ -7,6 +7,7 @@
[leiningen.core.eval :as eval]
[leiningen.core.main :as main]
[bultitude.core :as b]
[clojure.set :as set]
[clojure.string :as string]
[clojure.java.io :as io])
(:import (java.util.jar Manifest JarEntry JarOutputStream)
@ -311,7 +312,11 @@ With an argument, the jar will be built with an alternate main."
([project main]
(when (:auto-clean project true)
(clean/clean project))
(let [provided-profiles (project/pom-scope-profiles project :provided)
(let [scoped-profiles (set (project/pom-scope-profiles project :provided))
default-profiles (set (project/expand-profile project :default))
provided-profiles (remove
(set/difference default-profiles scoped-profiles)
(-> project meta :included-profiles))
project (preprocess-project project main)]
(merge (main-jar project provided-profiles main)
(classifier-jars project provided-profiles))))

View file

@ -1,6 +1,7 @@
(ns leiningen.test.jar
(:require [clojure.java.io :as io]
[leiningen.core.main :as main]
[leiningen.core.project :as project]
[leiningen.core.utils :refer [platform-nullsink]]
[leiningen.test.helper :as helper])
(:use [clojure.test]
@ -37,6 +38,16 @@
(is (entry-names "nested/dir/"))
(is (not (some #(.startsWith % "/") entry-names))))))
(deftest test-profile-added-to-jar
(with-out-str
(let [project (-> helper/with-resources-project
(project/add-profiles
{:test-jar {:resource-paths ^:replace []}})
(project/merge-profiles [:test-jar]))
jar (first (vals (jar project)))
entry-names (set (helper/walkzip jar #(.getName %)))]
(is (not (entry-names "nested/dir/sample.txt"))))))
(deftest test-no-aot-jar-succeeds
(with-out-str
(is (jar helper/sample-no-aot-project))))