CARVIEW |
technomancy / corkscrew
- Source
- Commits
- Network (0)
- Issues (0)
- Downloads (1)
- Wiki (1)
- Graphs
-
Branch:
master
click here to add a description
click here to add a homepage
Pledgie Donations
Once activated, we'll place the following badge in your repository's detail box:
Proof-of-concept build system for Clojure. — Read more
name | age | message | |
---|---|---|---|
![]() |
.gitignore | Mon May 25 09:07:25 -0700 2009 | Use copy-between-streams function. [technomancy] |
![]() |
README.markdown | Tue Jul 07 21:03:00 -0700 2009 | Report errors in mvn subprocess. Go back to usi... [technomancy] |
![]() |
bin/ | Tue Jul 07 20:25:50 -0700 2009 | Make pom a top-level command. [technomancy] |
![]() |
corkscrew.el | Sun Jun 07 22:21:52 -0700 2009 | Added corkscrew.el file. [technomancy] |
![]() |
install | Thu Sep 03 20:38:20 -0700 2009 | Fixed install script. [technomancy] |
![]() |
pom.xml | Thu Sep 03 20:38:20 -0700 2009 | Fixed install script. [technomancy] |
![]() |
sample/ | Tue Jul 07 21:03:00 -0700 2009 | Report errors in mvn subprocess. Go back to usi... [technomancy] |
![]() |
src/ | Tue Jul 07 21:03:00 -0700 2009 | Report errors in mvn subprocess. Go back to usi... [technomancy] |
![]() |
test/ | Sun May 31 21:52:49 -0700 2009 | Fix test suite. [technomancy] |
Corkscrew
https://github.com/technomancy/corkscrew
Corkscrew is a build tool for Clojure. It's definitely very proof-of-concept at this stage. You define a project.clj file in your project root, and Corkscrew will provide you with tools to build and manage your project.
It currently requires that Maven be installed to work. This requirement should be removed in future versions.
Project File
Here's a sample project file:
{:name "my-sample"
:version "1.0"
:namespaces '(my-sample)
:dependencies [["rome" "0.9"]]
:source-dependencies [["clojure-contrib" "r663" :svn
"https://clojure-contrib.googlecode.com/svn/trunk"]
["enlive" "95b2558943f50bb9962fe7d500ede353f1b578f0"
:git "git://github.com/cgrand/enlive.git"]]}
Dependencies refer to projects hosted in Maven repositories. You provide the name (aka artifactId) and version, and optionally the group ID, though this will default to the name if not provided.
You may also specify source dependencies on Clojure projects that are fetched directly from version-control repositories. You need to provide the name of the project, the version you want, the SCM it's managed with (currently only Subversion and Git are supported, but it's easy to add others), and the repository URL.
TODO: Dependencies on source projects that require AOT are not implemented.
Install
Running the "install" script should compile Corkscrew and install it.
Usage
$ corkscrew deps [project-dir]
Attempts to unpack each of the project's dependencies into the target/dependency directory. If they aren't cached locally, this will try to fetch them from the Internet.
$ corkscrew repl [project-dir-or-jar]
Starts a REPL with the project's classpath and dependencies set up.
$ corkscrew pom [project-dir]
Write the pom.xml file to the project root. Intended for debugging.
Planned Features
$ corkscrew compile [project-dir] [output-jar]
Compiles your source code into the target/classes/ directory. Creates a jar file containing bytecode. If your project is an application (has a "main" function, not a library), then this jar will be executable.
$ corkscrew build-standalone [project-dir] [output-jar]
Builds the project as a jar that contains all its dependencies, including Clojure itself.
$ corkscrew install [project-dir-or-jar]
Installs the project's jar into your local maven repository.
$ corkscrew publish [project-dir-or-jar] [repository]
Uploads the jar and metadata to a remote repository.
Contributing
Patches welcome; send pull requests or email to technomancy at gmail. In particular I want to remove the need for maven to run in a subprocess, but I can't make head or tail of its Java API.
License
by Phil Hagelberg, (C) 2009
Licensed under the same terms as Clojure.