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

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions