Craftsman Capabilities
Craftsman supports the concept of "capabilities". These can be thought of as special module characteristics or properties that affect how it is built or what operations a module can be used in. By defining your module as being of specific type, you automatically enable many capabilities and options specific to that kind of module type. In addition, all modules, no matter what their type, support some basic options.Table of Contents
Capability Type Reference
Capabilities are broken down into the following general categories:- Module Extension Reference
Extensions for creating EJB modules, Web Application modules, different kinds of documentation, etc. - Bundle Extension Reference
Extensions for creating bundles for distributing your modules. - Build Life-cycle Extenstion Reference
These capabilities allow you to change the build cycle used by Craftsman. These extensions are only needed by build maintainers or advanced users usually.
Capabilities Explained
Capabilities are structured in an inheritance tree, which supports multiple inheritance. In this layout, a specialized capability type inherits the options and abilities of its parent types. For instance, all children of java-module-with-libs have the option "use-manifest-classpath". The java-ws capability type inherits from java-module-with-libs and java-ws-enabled. This means it inherits the options and abilities from both parents.Capabilities are assigned by adding a "<capability .../>" entry to your module or bundle definition. See the configuration examples for some typical examples.
