Invicta is an open-source build management tool.
Version: 0.1Invicta is a build management tool, targeted mainly for large-scale projects. Invicta can be used either as a 'black box' or as a complete framework.
Operating System: Linux
Invicta does not replace existing build tools; instead, it uses them, functioning as a stronger and easier-to-use upper layer. This layer hides the complexity of the actual build script language and supplies additional functionalities.
While basing on Apache ANT, Invicta is not just an ANT extension; it should be generic enough to support in the future build tools other than ANT, and it is used by developers for processing their project's definition files and generating build scripts accordingly. Each developer is able to edit very simple XML files for defining his components, their types and their relations. These definition files become an integral part of the project, just like the project's sources.
Invicta addresses the needs of both 'simple' developers and administrator. For developers, the basic functionality of Invicta acts as a 'black box' for building a project.
For administrators or advanced developers, Invicta is a framework for their complete build environment. They can add their own customized types of components, which means writing once ANT code that can be used by all the developers in their project or company many times by simply specifying the new type name. Invicta's extensibility also allows accessing the information processed from the project definition files for writing output files other than ANT build.xml (for example, configuration files for a specific IDE).
In order to make Invicta a useful Open-Source project that developers can easily extend and maybe contribute to its development, Invicta must be a modular extensible framework. It should not be a 'closed' tool with a definite set of build functionalities.
It should initially have only basic build functionalities, but should define standard methods for extending these basic functionalities. Such extensions can either be specific requirements of some developers or common functionalities that can be added to Invicta in an evolutionary way.