Skip to content

Usage ${parameter} in <pluginRepository> and <repository>is prohibited in Maven 4 #11076

@sudo-mkdir

Description

@sudo-mkdir

Affected version

4.0.0-rc-4

Bug description

I'm not sure if that can consider as a bug or rather a discussion.

Use case and example

Because in various CICD pipelines we're pushing artifacts to different repos, or the company decides to change nexus url, so we only switch it in CICD pipeline, rather than in the code itself due to many repositories.
Currently in all our maven projects we have

<properties>
  <repository.id>Nexus Repository</repository.id>
  <repository.url>https://nexus.acme.com</repository.url>
</properties>

   <pluginRepositories>
      <pluginRepository>
         <id>${repository.id}</id>
         <url>${repository.url}</url>
      </pluginRepository>

as well as

  <repository>
   <id>${staging.repository.id}</id>
    <url>${staging.repository.url}</url>
 </repository>

Behavior

Maven 3

Maven 3 properly resolved ID as well as URL and we can override those during CICD pipeline

Maven 4

Print's out error
[ERROR] Maven model problem: 'pluginRepositories.pluginRepository.[${repository.id}].url' contains an unsupported expression (only expressions starting with 'project.basedir' or 'project.rootDirectory' are supported)


Is this working as designed? Where I can find additional doc regarding this change?

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions