Posts

Showing posts from September, 2013

MAVEN PLUGIN(S) SERIES - support zip packaging

Purpose of series ...  In my "day by day" experience as Java Architect, i'm involved in deep on processes concerning  Application Lifecycle Management    (ALM). We use  Apache Maven  as ingredient technology and we always dealing with need to find the best plugin (Mojo) that accomplish our requirements. So i've decided to share this experience providing a briefly description of most useful (or unusual) plugins discovered during my work. First One - ZIP Bundle Maven Plugin Description Typically a Maven user, to provide a zip as deliverable of his project, uses the famous  maven assembly plugin   The common approach is declare the packaging of the project as pom and invoke the assembly plugin, for zip creation and attachment it to the deploy phase. The  ZIP Bundle Maven Plugin , allow us to continue using assembly plugin and also to declare the packaging as zip instead of pom.   Usage The basic usage is shown below (from official site) <proje

How to Use Aether in Maven Plugins

Form Relase 3.x Maven has introduced Aether Repository Api Technology. Below an interesting article for starting to play with it How to Use Aether in Maven Plugins

Maven Best Practices

In my continuous reading through the blogs i've found this very useful article regarding Maven. It start with the follow sentence: Love or hate it… he will stay for a moment. So let’s apply the best practices to our poms and maven builds. Below the Table Of Contents  Make the build reproducible - Always specify a version for Maven2 plugins - Minimize number of SNASPHOT dependencies - Use dependency management section - Beware of relocation in maven repo - After a dependency modification, double check the produced artifacts Use and abuse of modules - more “technical/layered” - more business oriented Make the build maintainable - Prefer default directory layout - Avoid duplication by moving common tags to parent pom - Always specify a version of dependencies in a parent pom - Use Properties Liberally - Minimize the number of Profiles Make the build portable - Don’t commit eclipse and maven artifacts - Don't modify pom/artifactsin your &q