Welcome
Welcome to the home page of Schmant – a scriptable build tool for building software artifacts.
Schmant provides an environment for running build scripts and a set of tools (tasks) that the scripts can use. Schmant can, and will probably mostly, be used for building Java applications. The immediate goal for Schmant is to be comparable to Apache Ant in features, but nicer and easier to work with.
Schmant supports build scripts written in the script languages Groovy, JavaScript, JRuby or Jython. Many Schmant methods support script language-like features such as closures and untyped parameters.
Other notable features of Schmant are:
- TaskExecutor:s can be used for running different build tasks in parallel threads.
- Schmant build scripts may use EntityFS classes and methods for working with directories and files.
- Single Ant tasks or entire Ant scripts can be run using the AntTF task. It makes it easier to migrate away from Ant in small, manageable steps.
- Third-party tasks can be bundled and distributed in task packages.
- Schmant has tools for working with project repositories, i.e. Eclipse workspaces or IntelliJ IDEA projects.
- Schmant has a lot of XML and text processing tools.
- Recursive tasks can run tasks for each file and/or directory that matches a filter criterion.
- Since build scripts run in a Java virtual machine, they have access to the entire Java class library, as well as any number of user-supplied classes.
A good starting point for reading more about Schmant is the Schmant Introduction. The User's Guide contains code examples for all features listed above. The Task Factory Reference contains reference documentation for all tasks that are shipped with Schmant.
Schmant requires Java 6.0 or later to run, but it can build applications targeted for any Java version. Or even C applications, given that someone implements tasks for that…
Schmant development is sponsored by Holocene Software.
News
- 02/22/2010: Schmant Emma task package 1.1 released
- The Emma task package has been updated to work with Schmant 1.1.
- 02/18/2010: Schmant 1.1 released
- From version 1.1, JSR 223 scripting support is no longer used for running build scripts. Instead Schmant integrates with the different supported scripting language implementations directly. This made it possible to vastly enhance the support for closures. Now many Schmant methods accept closure arguments, closures can be added instead of tasks to task executors, etc. The ScriptTF task is no longer necessary and had to be removed as a consequence of the refactoring. External dependencies have been updated to their latest versions. There have been a lot of minor changes. See the release notes and the change log for details.
- 12/15/2009: Schmant Hudson plugin 1.1.4 released
- The plugin now runs Schmant as a separate process, thus plugging a few memory leaks.
- 09/25/2009: Schmant 1.0.1 released
- Version 1.0.1 comes with updated external dependencies and a couple of bug fixes. See the release notes and the change log for details.