You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "mike duigou (JIRA)" <ji...@apache.org> on 2018/11/05 20:04:00 UTC
[jira] [Updated] (MNG-6507) CI-friendly versioning doesn't work
when included as dependency
[ https://issues.apache.org/jira/browse/MNG-6507?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
mike duigou updated MNG-6507:
-----------------------------
Description:
I saw in the 3.6.0 release notes that several issues for CI friendly versions had been fixed so decided to try the feature.
One of our reactor projects is (simplified):
Reactor pom.xml:
{{<project>}}
{{ <modelVersion>4.0.0</modelVersion>}}
{{ <parent>}}
{{ <groupId>com.example.app</groupId>}}
{{ <artifactId>Infrastructure</artifactId>}}
{{ <version>7</version>}}
{{ </parent>}}
{{ <groupId>com.example.app</groupId>}}
{{ <artifactId>Reactor</artifactId>}}
{{ <name>App Reactor</name>}}
{{ <description>App Reactor Project</description>}}
{{ <version>${revision}${changelist}</version>}}
{{ <packaging>pom</packaging> <properties>}}
{{ <revision>3.2.0</revision>}}
{{ <changelist>-SNAPSHOT</changelist>}}
{{ <version.app>${revision}${changelist}</version.app>}}
{{ </properties>}}
{{ <modules>}}
{{ <module>core</module>}}
{{ <module>configuration</module>}}
{{ </modules>}}{{ }}
{{ ....}}{{ }}
{{ </project>}}
The configuration project pom.xml uses CI-friendly versioning:
{{<project>}}
{{ <modelVersion>4.0.0</modelVersion>}}
{{ <parent>}}
{{ <groupId>com.example.app</groupId>}}
{{ <artifactId>Reactor</artifactId>}}
{{ <version>${revision}${changelist}</version>}}
{{ </parent>}}
{{ <groupId>com.example.app</groupId>}}
{{ <artifactId>Configuration</artifactId>}}
{{ <name>App Configuration</name>}}
{{ <packaging>jar</packaging>}}
{{ .....}}{{ }}
{{ </project>}}
The core project pom.xml uses CI-friendly versioning:
{{<project>}}
{{ <modelVersion>4.0.0</modelVersion>}}
{{ <parent>}}
{{ <groupId>com.example.app</groupId>}}
{{ <artifactId>Reactor</artifactId>}}
{{ <version>${revision}${changelist}</version>}}
{{ </parent>}}
{{ <groupId>com.example.app</groupId>}}
{{ <artifactId>Core</artifactId>}}
{{ <name>App Core</name>}}
{{ <packaging>jar</packaging>}}
{{ <dependencies>}}
{{ <dependency>}}
{{ <!-- Include App Configuration in classpath for tests -->}}
{{ <groupId>com.example.app</groupId>}}
{{ <artifactId>Configuration</artifactId>}}
{{ <version>${revision}${changelist}</version>}}
{{ <scope>test</scope>}}
{{ </dependency>}}
{{ .....}}
{{ </dependencies>}}
{{ .....}}
{{ </project>}}
When building the reactor everything works as expected but building the core project independently results in maven attempting to resolve a version ${revision}${changelist} from the repos:
{{[ERROR] Failed to execute goal on project Regulus: Could not resolve dependencies for project com.example:Regulus:jar:3.6.0-SNAPSHOT: Failed to collect dependencies at com.example.app:Configuration:jar:3.6.0-SNAPSHOT: Failed to read artifact descriptor for com.example.app:Configuration:jar:3.6.0-SNAPSHOT: Failure to find com.example.app:Reactor:pom:${revision}${changelist} in [http://artifactory.example.com:8081/artifactory/libs-release] was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]}}
{{org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project Regulus: Could not resolve dependencies for project com.example:Core:jar:3.6.0-SNAPSHOT: Failed to collect dependencies at com.example.app:Configuration:jar:3.6.0-SNAPSHOT}}
{{... stack omitted ...}}
{{Caused by: org.apache.maven.project.DependencyResolutionException: Could not resolve dependencies for project com.example:Core:jar:3.6.0-SNAPSHOT: Failed to collect dependencies at com.example.app:Configuration:jar:3.6.0-SNAPSHOT}}
{{... stack omitted ...}}
{{Caused by: org.eclipse.aether.collection.DependencyCollectionException: Failed to collect dependencies at com.example.app:Configuration:jar:3.6.0-SNAPSHOT}}
{{... stack omitted ...}}{{ }}
{{Caused by: org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for com.example.app:Configuration:jar:3.6.0-SNAPSHOT}}
{{... stack omitted ...}}{{ }}
{{Caused by: org.apache.maven.model.resolution.UnresolvableModelException: Failure to find com.example.app:Reactor:pom:${revision}${changelist} in [http://artifactory.example.com:8081/artifactory/libs-release] was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced}}
{{... stack omitted ...}}{{ }}
{{Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Failure to find com.example.app:Reactor:pom:${revision}${changelist} in [http://artifactory.example.com:8081/artifactory/libs-release] was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced}}
{{... stack omitted ...}}
{{Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Failure to find com.example.app:Reactor:pom:${revision}${changelist} in [http://artifactory.example.com:8081/artifactory/libs-release] was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced}}
{{... stack omitted ...}}
It appears there are some places that should be doing the property substitution that are not.
was:
I saw in the 3.6.0 release notes that several issues for CI friendly versions had been fixed so decided to try the feature.
One of our reactor projects is (simplified):
Reactor pom.xml:
{{<project>}}
{{ <modelVersion>4.0.0</modelVersion>}}
{{ <parent>}}
{{ <groupId>com.example.app</groupId>}}
{{ <artifactId>Infrastructure</artifactId>}}
{{ <version>7</version>}}
{{ </parent>}}
{{ <groupId>com.example.app</groupId>}}
{{ <artifactId>Reactor</artifactId>}}
{{ <name>App Reactor</name>}}
{{ <description>App Reactor Project</description>}}
{{ <version>${revision}${changelist}</version>}}
{{ <packaging>pom</packaging> <properties>}}
{{ <revision>3.2.0</revision>}}
{{ <changelist>-SNAPSHOT</changelist>}}
{{ <version.app>${revision}${changelist}</version.app>}}
{{ </properties>}}
{{ <modules>}}
{{ <module>core</module>}}
{{ <module>configuration</module>}}
{{ </modules>}}{{ ....}}{{ </project>}}
The configuration project pom.xml uses CI-friendly versioning:
{{<project>}}
{{ <modelVersion>4.0.0</modelVersion>}}
{{ <parent>}}
{{ <groupId>com.example.app</groupId>}}
{{ <artifactId>Reactor</artifactId>}}
{{ <version>${revision}${changelist}</version>}}
{{ </parent>}}
{{ <groupId>com.example.app</groupId>}}
{{ <artifactId>Configuration</artifactId>}}
{{ <name>App Configuration</name>}}
{{ <packaging>jar</packaging>}}
{{ .....}}{{ </project>}}
The core project pom.xml uses CI-friendly versioning:
{{<project>}}
{{ <modelVersion>4.0.0</modelVersion>}}
{{ <parent>}}
{{ <groupId>com.example.app</groupId>}}
{{ <artifactId>Reactor</artifactId>}}
{{ <version>${revision}${changelist}</version>}}
{{ </parent>}}
{{ <groupId>com.example.app</groupId>}}
{{ <artifactId>Core</artifactId>}}
{{ <name>App Core</name>}}
{{ <packaging>jar</packaging>}}
{{ <dependencies>}}
{{ <dependency>}}
{{ <!-- Include App Configuration in classpath for tests -->}}
{{ <groupId>com.example.app</groupId>}}
{{ <artifactId>Configuration</artifactId>}}
{{ <version>${revision}${changelist}</version>}}
{{ <scope>test</scope>}}
{{ </dependency>}}
{{ .....}}
{{ </dependencies>}}
{{ .....}}
{{ </project>}}
When building the reactor everything works as expected but building the core project independently results in maven attempting to resolve a version ${revision}${changelist} from the repos:
{{[ERROR] Failed to execute goal on project Regulus: Could not resolve dependencies for project com.example:Regulus:jar:3.6.0-SNAPSHOT: Failed to collect dependencies at com.example.app:Configuration:jar:3.6.0-SNAPSHOT: Failed to read artifact descriptor for com.example.app:Configuration:jar:3.6.0-SNAPSHOT: Failure to find com.example.app:Reactor:pom:${revision}${changelist} in http://artifactory.example.com:8081/artifactory/libs-release was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]}}
{{org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project Regulus: Could not resolve dependencies for project com.example:Core:jar:3.6.0-SNAPSHOT: Failed to collect dependencies at com.example.app:Configuration:jar:3.6.0-SNAPSHOT}}
{{... stack omitted ...}}
{{Caused by: org.apache.maven.project.DependencyResolutionException: Could not resolve dependencies for project com.example:Core:jar:3.6.0-SNAPSHOT: Failed to collect dependencies at com.example.app:Configuration:jar:3.6.0-SNAPSHOT}}{{... stack omitted ...}}{{Caused by: org.eclipse.aether.collection.DependencyCollectionException: Failed to collect dependencies at com.example.app:Configuration:jar:3.6.0-SNAPSHOT}}
{{... stack omitted ...}}{{ Caused by: org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for com.example.app:Configuration:jar:3.6.0-SNAPSHOT}}
{{... stack omitted ...}}{{ Caused by: org.apache.maven.model.resolution.UnresolvableModelException: Failure to find com.example.app:Reactor:pom:${revision}${changelist} in http://artifactory.example.com:8081/artifactory/libs-release was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced}}{{... stack omitted ...}}{{ Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Failure to find com.example.app:Reactor:pom:${revision}${changelist} in http://artifactory.example.com:8081/artifactory/libs-release was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced}}{{... stack omitted ...}}{{ Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Failure to find com.example.app:Reactor:pom:${revision}${changelist} in http://artifactory.example.com:8081/artifactory/libs-release was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced}}{{... stack omitted ...}}
It appears there are some places that should be doing the property substitution that are not.
> CI-friendly versioning doesn't work when included as dependency
> ---------------------------------------------------------------
>
> Key: MNG-6507
> URL: https://issues.apache.org/jira/browse/MNG-6507
> Project: Maven
> Issue Type: Bug
> Components: Dependencies
> Affects Versions: 3.6.0
> Reporter: mike duigou
> Priority: Major
>
> I saw in the 3.6.0 release notes that several issues for CI friendly versions had been fixed so decided to try the feature.
> One of our reactor projects is (simplified):
> Reactor pom.xml:
> {{<project>}}
> {{ <modelVersion>4.0.0</modelVersion>}}
> {{ <parent>}}
> {{ <groupId>com.example.app</groupId>}}
> {{ <artifactId>Infrastructure</artifactId>}}
> {{ <version>7</version>}}
> {{ </parent>}}
> {{ <groupId>com.example.app</groupId>}}
> {{ <artifactId>Reactor</artifactId>}}
> {{ <name>App Reactor</name>}}
> {{ <description>App Reactor Project</description>}}
> {{ <version>${revision}${changelist}</version>}}
> {{ <packaging>pom</packaging> <properties>}}
> {{ <revision>3.2.0</revision>}}
> {{ <changelist>-SNAPSHOT</changelist>}}
> {{ <version.app>${revision}${changelist}</version.app>}}
> {{ </properties>}}
> {{ <modules>}}
> {{ <module>core</module>}}
> {{ <module>configuration</module>}}
> {{ </modules>}}{{ }}
> {{ ....}}{{ }}
> {{ </project>}}
> The configuration project pom.xml uses CI-friendly versioning:
> {{<project>}}
> {{ <modelVersion>4.0.0</modelVersion>}}
> {{ <parent>}}
> {{ <groupId>com.example.app</groupId>}}
> {{ <artifactId>Reactor</artifactId>}}
> {{ <version>${revision}${changelist}</version>}}
> {{ </parent>}}
> {{ <groupId>com.example.app</groupId>}}
> {{ <artifactId>Configuration</artifactId>}}
> {{ <name>App Configuration</name>}}
> {{ <packaging>jar</packaging>}}
> {{ .....}}{{ }}
> {{ </project>}}
> The core project pom.xml uses CI-friendly versioning:
> {{<project>}}
> {{ <modelVersion>4.0.0</modelVersion>}}
> {{ <parent>}}
> {{ <groupId>com.example.app</groupId>}}
> {{ <artifactId>Reactor</artifactId>}}
> {{ <version>${revision}${changelist}</version>}}
> {{ </parent>}}
> {{ <groupId>com.example.app</groupId>}}
> {{ <artifactId>Core</artifactId>}}
> {{ <name>App Core</name>}}
> {{ <packaging>jar</packaging>}}
> {{ <dependencies>}}
> {{ <dependency>}}
> {{ <!-- Include App Configuration in classpath for tests -->}}
> {{ <groupId>com.example.app</groupId>}}
> {{ <artifactId>Configuration</artifactId>}}
> {{ <version>${revision}${changelist}</version>}}
> {{ <scope>test</scope>}}
> {{ </dependency>}}
> {{ .....}}
> {{ </dependencies>}}
> {{ .....}}
> {{ </project>}}
>
> When building the reactor everything works as expected but building the core project independently results in maven attempting to resolve a version ${revision}${changelist} from the repos:
> {{[ERROR] Failed to execute goal on project Regulus: Could not resolve dependencies for project com.example:Regulus:jar:3.6.0-SNAPSHOT: Failed to collect dependencies at com.example.app:Configuration:jar:3.6.0-SNAPSHOT: Failed to read artifact descriptor for com.example.app:Configuration:jar:3.6.0-SNAPSHOT: Failure to find com.example.app:Reactor:pom:${revision}${changelist} in [http://artifactory.example.com:8081/artifactory/libs-release] was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]}}
> {{org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project Regulus: Could not resolve dependencies for project com.example:Core:jar:3.6.0-SNAPSHOT: Failed to collect dependencies at com.example.app:Configuration:jar:3.6.0-SNAPSHOT}}
> {{... stack omitted ...}}
> {{Caused by: org.apache.maven.project.DependencyResolutionException: Could not resolve dependencies for project com.example:Core:jar:3.6.0-SNAPSHOT: Failed to collect dependencies at com.example.app:Configuration:jar:3.6.0-SNAPSHOT}}
> {{... stack omitted ...}}
> {{Caused by: org.eclipse.aether.collection.DependencyCollectionException: Failed to collect dependencies at com.example.app:Configuration:jar:3.6.0-SNAPSHOT}}
> {{... stack omitted ...}}{{ }}
> {{Caused by: org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for com.example.app:Configuration:jar:3.6.0-SNAPSHOT}}
> {{... stack omitted ...}}{{ }}
> {{Caused by: org.apache.maven.model.resolution.UnresolvableModelException: Failure to find com.example.app:Reactor:pom:${revision}${changelist} in [http://artifactory.example.com:8081/artifactory/libs-release] was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced}}
> {{... stack omitted ...}}{{ }}
> {{Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Failure to find com.example.app:Reactor:pom:${revision}${changelist} in [http://artifactory.example.com:8081/artifactory/libs-release] was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced}}
> {{... stack omitted ...}}
> {{Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Failure to find com.example.app:Reactor:pom:${revision}${changelist} in [http://artifactory.example.com:8081/artifactory/libs-release] was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced}}
> {{... stack omitted ...}}
>
> It appears there are some places that should be doing the property substitution that are not.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)