There are ~3000 plugins in Maven Central (
http://search.maven.org/#search|ga|1|p%3A%22maven-plugin%22). My eyes
glazed over after scanning through the first 100 to see if there are plugin
names to indicate if they might re-write poms.

So I'll stick with the available plugins list (
http://maven.apache.org/plugins/) and it looks like the only plugins that
modify the pom are:
* release
* versions

I've also looked at m2eclipse (https://github.com/eclipse/m2e-core.git) to
see how it rewrites poms. m2eclipse can get away with working with the
Eclipse provided StructuredModels to grab a dom version of the editor and
just rewrite that one section, knowing that it doesn't need to rewrite the
whole file.

The Maven plugins on the other hand need to stream in the file and preserve
all the kooky white space and commenting, as well as update just the
sections they want to modify.

The release plugin uses org.jdom.Element to manipulate rewrites, and
org.jdom.output.XMLOutputter with a raw formatter to write the pom file out.

The versions plugin uses StringBuilder as an in memory copy of the pom file
and the StAX2 api to manipulate rewrites, and an XmlStreamWriter to write
the pom file out.

Have I missed any plugins?

For such a small number of plugins that need to make rewrites it probably
not necessary to have this functionality offered in Maven directly...

Reply via email to