Will Iverson created MNG-7044:
---------------------------------
Summary: Allow use of attributes in Maven pom.xml
Key: MNG-7044
URL: https://issues.apache.org/jira/browse/MNG-7044
Project: Maven
Issue Type: New Feature
Components: core, POM
Affects Versions: 4.x / Backlog
Reporter: Will Iverson
Proposal: The current pom.xml file is very verbose due to the exclusive use of
XML elements. This makes even simple declarations such as dependencies
unnecessarily verbose.
I would propose that a future version of Maven allow for the use of attributes
as an alternative declaration for pom.xml configuration. This would only affect
how Maven ingests project files - for consistency and backward compatibility
all generated pom.xml files would continue to be element based.
Projects that declared a conflicting/duplicate attribute/element pairing would
be considered to be malformed, and would result in a built break.
By way of example of the benefit of this proposal, this declaration would be
reduced from:
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.4</version>
</dependency>
...to...
<dependency groupId="commons-cli" artifactId="commons-cli" version="1.4" />
This would allow many Maven projects to *dramatically* decrease the total line
count, which is one of the frequent criticisms of Maven compared with other
build tools.
If there is interest, I would be happy to help support this. My
hope/expectation is that the changes required to support this in Maven itself
would be quite minor - simply adding a bit of additional logic to look for
attributes in the XML parse and error reporting in the event of a duplication
(as well as supporting test cases). That said, I don't want to send in patches
for a change like this that would be dead on arrival.
This would, of course, represent a potentially large impact on the user and
tooling space (in particular, IDEs that integrate Maven support). As the
emitted files for resolved pom.xml files (those that are published in repos)
would remain the same, hopefully the overall impacts would be manageable.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)