You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Tom Kiemes (JIRA)" <ji...@apache.org> on 2019/08/05 16:35:00 UTC
[jira] [Updated] (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:all-tabpanel ]
Tom Kiemes updated MNG-6727:
----------------------------
Description:
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
was:
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
> 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.6.1
> 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
(v7.6.14#76016)