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)