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.

Reply via email to