The scripts in this directory are intented for production builds on build.eclipse.org. 

None of them should be required for normal "maven builds". 

Most of them would not work well for local builds or "casual use" as they 
will tag repos, commit changes, and similar. 
