Hi, I know that historically plugin versions like 2.x was dedicated to Maven 2.x and versions 3.x is for Maven 3.x.
We don't have any written documentation about it (or I can't find it), it looks like a traditional agreement. Nowadays Semantic Versioning is very popular and it is understood by people and by automatic tools. In many cases we use versions which look like Semantic Versioning (x.y.z) - but internally we try to classify it in different ways. When we connect the plugins version with the Maven version as the major version, we have difficulty introducing breaking changes for plugins for the same Maven version. Also we can introduce many misunderstandings which version contains new features and which only bug fixes. Authors of plugins outside Maven core in many cases don't use 3.x as for Maven 3 and so on. One of the propositions can be - use Semantic Versioning as is described and put a Maven version in the artifact name of the plugin. So we can have: maven4-XXX-plugin - for core plugins XXX-maven4-plugin - for external plugins Additionally Maven 4 will have a new Api which is incompatible with Maven 3, when we have the target Maven version in artifact it will be easier to transition plugins from 3 to 4 and so on. Simply in many cases business logic which plugin provides can be extracted to a common module and next two modules will provide plugins for specific Maven. It can help maintain one plugin for many Maven versions. -- Sławomir Jaranowski
