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 uses the scripting support in Java 6, so build scripts can be written in any scripting language that has a JSR 223-compatible script engine. There is documentation with a lot of cut-and-pasteable examples for writing build scripts in BeanShell, Groovy, JavaScript, JRuby and Jython.
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
- 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.
- 07/17/2009: Schmant Emma task package 1.0.1 released
- The Emma task package has been updated to work with Schmant 1.0.
- 07/17/2009: Schmant 1.0 released
- Version 1.0 comes with explicit support for build scripts written in Groovy, JRuby or Jython, in addition to the support for JavaScript scripts from previous Schmant versions. There are several examples written in Groovy, JRuby and Jython in the Programmer's Guide and in the task factory reference. Task factory arguments may now be flattened using the FlatteningList. 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.
