Maven SCM supports Maven 2.x plugins (e.g. maven-release-plugin) and other
tools (e.g. Continuum) by providing them with a common API for doing SCM
operations. You can look at the list of SCMs for more information on using
Maven SCM with your favorite SCM tool.
I will give some more information about changes which are (might be!) part of
the next Maven release.
Just be warned that you do not blame me if a particular issue will not part of the final release.
This is written from the current perspecitve. So no warranty about that.
If you like to create source packages during the release you can use the defined state
in the super pom, but unfortunately there is little issue with the default
definitions which causes the generate-resources and the generate-sources life
cycle phase to run twice based on the bound goal of the maven-source-plugin which
forkes the life cycle. So a typical workaorund is to detach the maven-source-plugin
form the life cycle via the following:
But this configuration has one drawback. It will filter everything, except
files with pre defined extensions like
jpg, jpeg, gif, bmp, png.
Often in builds you need have supplemental files which should be filered or not
filtered. So the consequence is to enhance the configuration and adding
those extensions/folders etc. Or you know that you have some folders in that above
tree which contain files which should not be filtered eithers. This often ends
up with a bunch of includes/excludes etc. which is simply cumbersome.
The best and simplest solution would be having two different locations for filtered
and non-filtered files. So a configuration in your pom could look like this:
So this setup makes it easier and more clean where the files are located which will be
filtered and the ones which will not. The same could of course be applied to the
By improving the Conventions over Configuration paradigm in
Maven 3.4.0 the super pom contains such an configuration for
the src/main/resources, src/main/filtered-resources, as well as for
the src/test/resources, src/test/filtered-resources.
The Maven Archiver is mainly used by plugins to handle packaging. The version
numbers referenced in the Since column on this page are the version of the
Maven Archiver component – not for any specific plugin. To see which version of
Maven Archiver a plugin uses, go to the site for that plugin.
You should specify the version in your project’s dependency configuration:
The reason is simple, cause those plugins already handle the task to add the
generated source code to the correct parts in Maven to give for example the
Maven Compiler Plugin a hint to compile also those
generated java code.
Yes I know there are some of such plugins out there which do not do it in the
correct way which means you need to add the Build Helper Maven Plugin
snippet, but this means those plugins need some improvements. Those plugins
violate the Convention over Configuration paradigm. Why? Simply cause you
as user need to think about an internal detail of those plugins which is simply
wrong. They have to handle that on their own.