[ 
https://issues.apache.org/jira/browse/MNG-7044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17241923#comment-17241923
 ] 

Will Iverson commented on MNG-7044:
-----------------------------------

Bit more investigation:

- Everything in the current Maven xsd is apparently optional. As in, literally 
every element is flagged as  minOccurs="0". So, it appears that technically a 
Maven pom.xml can have anything in it with whatever attributes anyone wanted to 
add, and it would still be considered valid insofar as the Maven xsd is 
concerned. The bulk of the xsd is devoted to documentation - there is 
essentially no validation expressed in the xsd.
- There already exists today an interesting separation between a project 
pom.xml and the effective pom that's generated both by Maven internally for 
processing and exported to a repository.

Do you happen to know which Maven project is responsible for the actual parsing 
of the pom.xml itself?

> 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
>            Reporter: Will Iverson
>            Priority: Minor
>              Labels: features
>
> 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)

Reply via email to