| Feature Name |
Description |
| Maven to Ant |
Easy integration with auto Ant project. Auto init from generic getAntProject() method
which allocate only one Ant project per POM. This the feature provides:
- Referencing patternsets or fileset accross plugins
- Transformation of Maven collections (Artifacts, Files, Strings, ...)
to Ant collections (classpath, filesets, ...)
- Attaching Ant generated files to Maven project
- And code reuse of everything you need...
|
|
Multi Artifacts per POM
|
In order to really generate a coherent module, multiple artifacts need to be associated with
one POM (jar, web resources, SQL, includes, war, ...). The Multijar plugins offers
a generic ability to created extra artifacts with classifier and let other plugins
use it. Futhermore, some utility classes enables easy reading of this dynamic information
when a plugin is working on a POM dependant on a module that used multijar.
This the feature provides:
- Creating Struts modules without being a war (jar + web-resources)
- Assembling jar, war, C++, JNI, modules into a coherent distribution that avoids duplicating
the same information (which module is what, and what it contains) between the modules and
the final assembly.
- Signing jars and dependencies
- Wrapping C include files *.h into a reusable -include.jar file
|
| Project Naming |
To avoid the duplication of information between groupId artifactId and type, and get rid
of the nightmare of unique artifactId management, we created a plexus component ProjectNameProvider.
This component can be reconfigured using the group module and Has also jar and native implementation.
It is used in the following plugins with non exhaustiv description of work:
- Idea plugin for name of modules and the dependencies
- Assembly plugin for creating the final artifact names to be delivered (remove version, unify naming)
- Native plugin to add libXXX automatically for library
|
|
Native Plugin
|
Provide a real Added Value alternative to Make and Ant for C and C++ with Maven:
- Configurable Compiler and linker type or executable
- Transitiv dependencies
- Incremental build at each level of the project hierarchy
- Transparent remove of the need for full check out of the whole project hierarchy, using Maven repository
- Delivery to repository of include files
- Compilation and execution of Unit Tests (CppUnit by default)
- Management of library and version with symbolic links
- Debug and Shared options configurable and separated from main options
- Usable for static analysis execution (Parasoft Insure++, Rational Purify, ...)
- Parallel (Multithreaded) compilation calls
|