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

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions