Accessing POM List-style Elements from Interpolation Process / Parameter Expressions

The main use case for this currently is this best practice discussion. The syntax discussed in that document for referencing dependency versions should be generalized to allow references to any list-style POM element, including plugins, repositories, developers, contributors, etc.

In general, I think the most expression language-neutral syntax would be something like:

${project.dependencies["org.apache.maven:maven-artifact"].version}

This syntax is similar to OGNL, XPath, and (I think) the JSP expression language.

One thing to consider with this is that we'll need to define some sort of key method for the expression evaluator to use for index lookup, or some way of uniformly accessing list elements using a mapping of id->value. This may depend on the (currently absent) ability of modello to track the identity elements of a class.

References