I have a feeling this has been covered before, but I'll ask just in case.
I have a pom.xml that inherits from a parent pom, and the child pom has the
following plugin definition:
----------------------
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration combine.self="override">
<release>11</release>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
----------------------
Notice the "combine.self" attribute. In a command line mvn build, this does
exactly what it needs to, completely overriding the plugin configuration
inherited from the parent pom. If I don't have that, it results in errors
because it "merges" the plugin configs by default.
What's annoying is that if I open this pom.xml in Eclipse, with the m2e
plugin, I get the following error on that line:
cvc-complex-type.3.2.2: Attribute 'combine.self' is not allowed to
appear in element 'configuration'.
I, along with multiple other people, assumed that this indicates a bug in
m2e, because it clearly works in the command-line build. However, it was
pointed out that m2e is actually USING the defined schema defined in the
boilerplate of a pom.xml, instead of ignoring it, and if you open up that
schema, it clearly shows the lack of an "attribute" element in the
"configuration" complex-type.
So, clearly mvn is using that attribute, but I'm guessing it's not doing
any schema validation, or builds using that attribute would fail.
I have a feeling this situation has been in place for a long time.