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 PluginDescriptionTypically 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.  

UsageThe basic usage is shown below (from official site)

<project> ... <packaging>zip</p…

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 "enterprise&quo…