Savant Build Tool
The Inversoft dev team is excited to announce the first preview release of the Savant build tool. Savant is written in Java and uses a Groovy DSL for the build files providing the power of the Groovy programming language for your builds.
We have been working to define the concepts of our ideal build tool for nearly a decade. By using a wide variety of other build tools including Ant, Maven, and Gradle, we have learned that dependency management, versioning and compatibility are some of the most complex problems in building software, and all of the existing build tools don’t solve these problems well. We realized that the build tool should be handling all of these concepts in the most complete way possible. To solve these problems, we adopted the Semantic Versioning standard and built Savant as a complete implementation of it.
We also found that build tools have become more and more complex to use. Most build tools force developers to understand complex configuration hierarchies, workflows, and task/type inheritance. We feel that build files should be simple and obvious. The fewer concepts there are, the more effective the developer will be when writing the build file.
Finally, we learned that build tools that try to push everything into plugins including targets, tasks, and dependencies don’t make life simpler as you might expect. Instead, they require complex workflows and hidden dependencies between plugins that are nearly impossible to manage. We feel that plugins should only provide the functionality of a single specific task, like compiling Java source code. Build targets and target dependencies should be left in the build file. Putting build targets in the build file has the dual benefits of transparency and simplicity.
We are all really excited about Savant’s potential because it is first and foremost a dependency management tool, and everything else is built on top of that. This means that everything in Savant is a dependency and is versioned according to Semantic Versioning specification.
Here are some of the key features of Savant:
- Groovy-based build files
- Complete dependency management
- True Semantic Version compatibility
- Easy extension via simple object-oriented plugins
- Open and closed-source license management and compliance
- Simple project releases
- Much more
Download and Docs: https://github.com/inversoft/savant-core/wiki
We are going to cover all of the features of Savant in upcoming blog posts to give you a sense of the power and simplicity of Savant. The first blog post on Savant Build Files will be published later this week. Stay tuned.