Skip to content

Mixins - Property Handling / Precendence #11133

@khmarbaise

Description

@khmarbaise

Affected version

Maven 4.1.0+

Bug description

I'm trying to define a mixin which looks like this:

<project xmlns="http://maven.apache.org/POM/4.2.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.2.0 https://maven.apache.org/xsd/maven-4.2.0.xsd">

  <parent>
    <groupId>com.soebes.smpp</groupId>
    <artifactId>smpp</artifactId>
    <version>7.0.5</version>
    <relativePath/>
  </parent>

  <groupId>com.soebes.mixins</groupId>
  <artifactId>mixin-jdk-21</artifactId>
  <version>1.0.0</version>
  <packaging>pom</packaging>

    <properties>
        <maven.compiler.release>21</maven.compiler.release>
    </properties>

</project>

and having a project which uses the above mixin like this:

<project xmlns="http://maven.apache.org/POM/4.2.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.2.0 https://maven.apache.org/xsd/maven-4.2.0.xsd">

    <parent>
        <groupId>com.soebes.smpp</groupId>
        <artifactId>smpp</artifactId>
        <version>7.0.5</version>
        <relativePath/>
    </parent>

    <groupId>com.soebes.examples.j2ee</groupId>
    <artifactId>jee-parent</artifactId>
    <version>3.1.4-SNAPSHOT</version>

    <mixins>
        <mixin>
            <groupId>com.soebes.mixins</groupId>
            <artifactId>mixin-jdk-21</artifactId>
            <version>1.0.0</version>
        </mixin>
    </mixins>
</project>

The mixin defines the maven.compiler.release but unfortunately the result is being compiled with a different <maven.compiler.release>11</maven.compiler.release> which is defined in the com.soebes.smpp:smpp:7.0.5 parent.

Either the property of the parent within the usage has precedence over the mixin defined property or the parent used in the mixin defininition project.

The question is:

  • Is this intented behaviour ?
  • Mixins which only define properties only is not intended/supported?
  • The given examples in the documentation are defined without the usage of a parent.. That might be problematic to make a release of mixin because plugins etc. needed to be defined.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions