You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Jeff Maxwell (Jira)" <ji...@apache.org> on 2020/12/29 22:37:00 UTC

[jira] [Comment Edited] (MNG-6727) Using version range in parent and CI Friendly Version fails

    [ https://issues.apache.org/jira/browse/MNG-6727?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17256187#comment-17256187 ] 

Jeff Maxwell edited comment on MNG-6727 at 12/29/20, 10:36 PM:
---------------------------------------------------------------

I believe the root causes is this [section|https://github.com/apache/maven/blob/2caed6218a5ec0a0b7fce2975743331e5ec76c89/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java#L1203-L1208]

The code attempts to prevent parent version ranges being used as the child version, which is a good thing, but the solution, checking if the child version starts with $\{ breaks the combined usage of parent version ranges and property based versions.

Can this check just be replaced with a check if the version is set to {{$\{project.version}}}?

Or can the contents of the {{childModel.getVersion()}} be evaluated at this point and checked if the value is truly a version range?


was (Author: jeff.maxwell):
I believe the root causes is this [section|https://github.com/apache/maven/blob/2caed6218a5ec0a0b7fce2975743331e5ec76c89/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java#L1203-L1208]

The code attempts to prevent parent version ranges being used as the child version, which is a good thing, but the solution, checking if the child version starts with $\{ breaks the combined usage of parent version ranges and property based versions.

Can this check just be replaced with a check to ${parent.version}?

> Using version range in parent and CI Friendly Version fails
> -----------------------------------------------------------
>
>                 Key: MNG-6727
>                 URL: https://issues.apache.org/jira/browse/MNG-6727
>             Project: Maven
>          Issue Type: Bug
>          Components: Inheritance and Interpolation, POM, Reactor and workspace
>    Affects Versions: 3.5.2, 3.6.1, 3.6.2, 3.6.3
>            Reporter: Tom Kiemes
>            Priority: Major
>
> We would like to pass a [version range|https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html] to the parent which should be possible since 3.5.0
> At the same time, we would like to use [CI friendly versions|https://maven.apache.org/maven-ci-friendly.html] for the artifact itself.
> Both on their own work well, but combined they don't.
> {{<?xml version="1.0" encoding="UTF-8"?>}}
>  {{<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" }}{{xsi:schemaLocation="[http://maven.apache.org/POM/4.0.0] [http://maven.apache.org/xsd/maven-4.0.0.xsd]">}}
>  {{  <modelVersion>4.0.0</modelVersion>}}
> {{  <parent>}}
>  {{    <groupId>org.springframework.boot</groupId>}}
>  {{    <artifactId>spring-boot-starter-parent</artifactId>}}
>  {{    <version>[2.1,3.0)</version>}}
>  {{  </parent>}}
> {{  <groupId>com.example</groupId>}}
>  {{  <artifactId>test</artifactId>}}
>  {{  <version>${revision}</version>}}
>  {{  <packaging>pom</packaging>}}
> {{  <properties>}}
>  {{    <revision>0.0.1</revision>}}
>  {{  </properties>}}
>  {{</project>}}
>  
> The resulting error is:
> {{The project com.example:test:${revision} (/Users/d045390/scratch/test.pom) has 1 error}}
> {{[ERROR] Version must be a constant @ line 13, column 12}}
>  
> Changing the version range of the parent to a fixed version e.g. \{{2.1.5.Release}}, building works.
> Changing the artifact version from ${revision} to a fixed version e.g. 0.0.1 without using the {{properties}} works as well.
> So it somehow must be the combination of both features which are actually not really related or am I missing something?
> PS: I left the modules out for abbreviation purpose. The pom itself can still be used to reproduced



--
This message was sent by Atlassian Jira
(v8.3.4#803005)