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

Maarten Mulders commented on MNG-7044:
--------------------------------------

I'm sorry for the early closure. Indeed I should've double-checked if it was 
the same proposal or not. I don't hold a strong opinion in favour of or against 
this idea, it's just me being too lazy and not checking. Again, please 
apologise.

You can find the Modello model in [Maven Core|https://github.com/apache/maven], 
under 
[maven-model/src/main/mdo|https://github.com/apache/maven/tree/master/maven-model/src/main/mdo].
 I am not familiar with how it works or how it transforms into Java code, so 
I'm afraid I won't be of much help in that part. I do know some parts of Maven 
from my recent work on Maven, just not these parts.

As far as I understand, with the new build/consumer feature that will ship in 
Maven 4, it will be possible to deploy a different POM than the one that is 
used to build the project. Maybe that would provide the foundation for what 
you're suggesting - rewriting those attributes into the more verbose 
element-based structure so all tools that support Model version 4 will be able 
to understand. But again, I'm not sure about this, we would need to investigate.

> 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