diff options
author | Stuart Sierra <mail@stuartsierra.com> | 2010-12-17 17:04:15 -0500 |
---|---|---|
committer | Stuart Halloway <stu@thinkrelevance.com> | 2011-01-05 08:12:27 -0500 |
commit | 16eef0b2259d3cc0aaa95e7d7b438aeec3cdb197 (patch) | |
tree | 8a54aac1b4e7ea9b97a288c082a264fbfdeea8ca /src | |
parent | c5673086d40f206135b99a37001c80a4016c3877 (diff) |
Build and deploy with Maven 2; CLJ-681
* Real pom.xml
* Simpler build.xml for local development with Ant
* No Clojure plugin; uses AntRun to build Clojure
* POM inheritance from Sonatype OSS deployment
* Build instructions in README
* Automatically builds "slim" and "sources" JARs as before
* 'distribution' profile generates a ZIP
* version.properties generated by the version in pom.xml
* slightly different format
* minor changes to clojure.core to handle version.properties
* Fix tests that assumed Ant as the test driver
* Tweaked run_tests.clj to work against current master
Diffstat (limited to 'src')
-rw-r--r-- | src/assembly/distribution.xml | 49 | ||||
-rw-r--r-- | src/assembly/slim.xml | 32 | ||||
-rw-r--r-- | src/clj/clojure/core.clj | 29 | ||||
-rw-r--r-- | src/clj/clojure/version.properties | 5 | ||||
-rw-r--r-- | src/resources/clojure/version.properties | 1 | ||||
-rw-r--r-- | src/script/run_tests.clj | 58 |
6 files changed, 157 insertions, 17 deletions
diff --git a/src/assembly/distribution.xml b/src/assembly/distribution.xml new file mode 100644 index 00000000..410fb0f0 --- /dev/null +++ b/src/assembly/distribution.xml @@ -0,0 +1,49 @@ +<assembly> + <id>distribution</id> + <formats> + <format>zip</format> + </formats> + <fileSets> + <fileSet> + <directory>src</directory> + <outputDirectory>src</outputDirectory> + </fileSet> + <fileSet> + <directory>doc</directory> + <outputDirectory>doc</outputDirectory> + </fileSet> + <fileSet> + <directory>test</directory> + <outputDirectory>test</outputDirectory> + </fileSet> + <fileSet> + <directory>target</directory> + <outputDirectory>/</outputDirectory> + <filtered>false</filtered> + <includes> + <include>*.jar</include> + </includes> + </fileSet> + </fileSets> + <files> + <file> + <source>pom.xml</source> + </file> + <file> + <source>build.xml</source> + </file> + <file> + <source>readme.txt</source> + <filtered>true</filtered> + </file> + <file> + <source>changes.txt</source> + </file> + <file> + <source>clojure.iml</source> + </file> + <file> + <source>epl-v10.html</source> + </file> + </files> +</assembly> diff --git a/src/assembly/slim.xml b/src/assembly/slim.xml new file mode 100644 index 00000000..5958439a --- /dev/null +++ b/src/assembly/slim.xml @@ -0,0 +1,32 @@ +<assembly> + <id>slim</id> + <formats> + <format>jar</format> + </formats> + <includeBaseDirectory>false</includeBaseDirectory> + <fileSets> + <fileSet> + <directory>src/clj</directory> + <outputDirectory>/</outputDirectory> + </fileSet> + <fileSet> + <directory>src/resources</directory> + <outputDirectory>/</outputDirectory> + <filtered>true</filtered> + </fileSet> + <fileSet> + <directory>target/classes/clojure/asm</directory> + <outputDirectory>clojure/asm</outputDirectory> + </fileSet> + <fileSet> + <directory>target/classes/clojure/lang</directory> + <outputDirectory>clojure/lang</outputDirectory> + </fileSet> + </fileSets> + <files> + <file> + <source>target/classes/clojure/main.class</source> + <outputDirectory>clojure</outputDirectory> + </file> + </files> +</assembly> diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj index bd4c05d3..6fa139dd 100644 --- a/src/clj/clojure/core.clj +++ b/src/clj/clojure/core.clj @@ -5908,18 +5908,23 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; clojure version number ;;;;;;;;;;;;;;;;;;;;;; -(let [version-stream (.getResourceAsStream (clojure.lang.RT/baseLoader) - "clojure/version.properties") +(let [version-stream (.getResourceAsStream + (clojure.lang.RT/baseLoader) + "clojure/version.properties") properties (doto (new java.util.Properties) (.load version-stream)) - prop (fn [k] (.getProperty properties (str "clojure.version." k))) - clojure-version {:major (Integer/valueOf ^String (prop "major")) - :minor (Integer/valueOf ^String (prop "minor")) - :incremental (Integer/valueOf ^String (prop "incremental")) - :qualifier (prop "qualifier")}] - (def ^:dynamic *clojure-version* - (if (not (= (prop "interim") "false")) - (clojure.lang.RT/assoc clojure-version :interim true) - clojure-version))) + version-string (.getProperty properties "version") + [_ major minor incremental qualifier snapshot] + (re-matches + #"(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_]+))?(?:-(SNAPSHOT))?" + version-string) + clojure-version {:major (Integer/valueOf ^String major) + :minor (Integer/valueOf ^String minor) + :incremental (Integer/valueOf ^String incremental) + :qualifier (if (= qualifier "SNAPSHOT") nil qualifier)}] + (def ^:dynamic *clojure-version* + (if (.contains version-string "SNAPSHOT") + (clojure.lang.RT/assoc clojure-version :interim true) + clojure-version))) (add-doc-and-meta *clojure-version* "The version info for Clojure core, as a map containing :major :minor @@ -5941,7 +5946,7 @@ (when-let [q (:qualifier *clojure-version*)] (when (pos? (count q)) (str "-" q))) (when (:interim *clojure-version*) - "-SNAPSHOT"))) + "-SNAPSHOT"))) (defn promise "Alpha - subject to change. diff --git a/src/clj/clojure/version.properties b/src/clj/clojure/version.properties deleted file mode 100644 index 908346f1..00000000 --- a/src/clj/clojure/version.properties +++ /dev/null @@ -1,5 +0,0 @@ -clojure.version.major=1 -clojure.version.minor=3 -clojure.version.incremental=0 -clojure.version.qualifier=master -clojure.version.interim=interim diff --git a/src/resources/clojure/version.properties b/src/resources/clojure/version.properties new file mode 100644 index 00000000..75ac2d20 --- /dev/null +++ b/src/resources/clojure/version.properties @@ -0,0 +1 @@ +version=${version}
\ No newline at end of file diff --git a/src/script/run_tests.clj b/src/script/run_tests.clj new file mode 100644 index 00000000..5b4ba07e --- /dev/null +++ b/src/script/run_tests.clj @@ -0,0 +1,58 @@ +(ns clojure.test-clojure (:require clojure.test)) + +(def test-namespaces '[ +clojure.test-clojure.agents +clojure.test-clojure.annotations +clojure.test-clojure.atoms +clojure.test-clojure.clojure-set +clojure.test-clojure.clojure-walk +clojure.test-clojure.clojure-xml +clojure.test-clojure.clojure-zip +clojure.test-clojure.compilation +clojure.test-clojure.control +clojure.test-clojure.data +clojure.test-clojure.data-structures +clojure.test-clojure.def +clojure.test-clojure.errors +clojure.test-clojure.evaluation +clojure.test-clojure.for +clojure.test-clojure.genclass.examples +clojure.test-clojure.genclass +clojure.test-clojure.java.io +clojure.test-clojure.java.javadoc +clojure.test-clojure.java.shell +clojure.test-clojure.java-interop +clojure.test-clojure.keywords +clojure.test-clojure.logic +clojure.test-clojure.macros +clojure.test-clojure.main +clojure.test-clojure.metadata +clojure.test-clojure.multimethods +clojure.test-clojure.ns-libs +clojure.test-clojure.numbers +clojure.test-clojure.other-functions +clojure.test-clojure.parallel +clojure.test-clojure.pprint +clojure.test-clojure.predicates +clojure.test-clojure.printer +clojure.test-clojure.protocols +clojure.test-clojure.reader +clojure.test-clojure.reflect +clojure.test-clojure.refs +clojure.test-clojure.repl +clojure.test-clojure.rt +clojure.test-clojure.sequences +clojure.test-clojure.serialization +clojure.test-clojure.special +clojure.test-clojure.string +clojure.test-clojure.test +clojure.test-clojure.test-fixtures +clojure.test-clojure.transients +clojure.test-clojure.vars +clojure.test-clojure.vectors +]) + +(apply require test-namespaces) + +(let [results (apply clojure.test/run-tests test-namespaces)] + (System/exit (+ (:error results) (:fail results)))) |