You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "Martin Burger (JIRA)" <ji...@apache.org> on 2014/06/03 10:28:01 UTC

[jira] [Created] (IVY-1476) Support timestamped SNAPSHOT versions from Maven repository

Martin Burger created IVY-1476:
----------------------------------

             Summary: Support timestamped SNAPSHOT versions from Maven repository
                 Key: IVY-1476
                 URL: https://issues.apache.org/jira/browse/IVY-1476
             Project: Ivy
          Issue Type: Bug
          Components: Maven Compatibility
         Environment: sbt 0.13.5 | Sonatype Nexus 2.7.2-0 | Apache Maven 3.2.1 | play 2.2.3
            Reporter: Martin Burger


*Background*

I am developing a Play 2.2.3 application; the Play build system uses sbt. The latter again uses Apache Ivy to implement managed dependencies.

Furthermore, I am using Sonatype Nexus OSS to manage various libraries built and deployed by Maven. At the moment, I am deploying snapshot versions of those libraries. For instance:

<groupId>myGroup</groupId>
<artifactId>myArtifact</artifactId>
<version>0.1-SNAPSHOT</version>

The Play application depends on snapshot versions of those libraries.

*Intention*

In the Play project, I want to use a specific (thus, "timestamped") snapshot version of a dependency -- say 0.1-20140509.053703-1 -- instead of the latest one as specified by 0.1-SNAPSHOT.

*Issue - Overview*

While the latter works perfectly well, sbt (or, Ivy in the background) seems to be unable to resolve the specific version. At least sbt constructs the URL pointing to that specific version faultily: The name of the directory that contains the artifact ends with the actual timestamp instead of string SNAPSHOT.

*Issue - Concrete Example*

I created a new Play application and added the following dependency in file build.sbt: libraryDependencies += "myGroup" % "myArtifact" % "0.1-20140509.053703-1"

When resolving that dependency, sbt constructs URLs ending with myGroup/myArtifact/0.1-20140509.053703-1/myArtifact-0.1-20140509.053703-1.pom.

Note that the 3rd path component is 0.1-20140509.053703-1. Thus, the directory containing artifact myArtifact incorrectly contains the timestamp as well.

The correct directory name would be 0.1-SNAPSHOT; thus, using SNAPSHOT instead of the actual timestamp. The complete correct URL would thus end with myGroup/myArtifact/0.1-SNAPSHOT/myArtifact-0.1-20140509.053703-1.pom.

Referring to the latest snapshot version instead by using dependency entry libraryDependencies += "myGroup" % "myArtifact" % "0.1-SNAPSHOT" works as expected. The URLs end with 0.1-SNAPSHOT/myArtifact-0.1-SNAPSHOT.pom.

*References*

- I reported the above issue at [Stack Overfow|http://stackoverflow.com/q/23563675/66981]. However, I haven't got any answer so far.
- I created [sbt issue #1325|https://github.com/sbt/sbt/issues/1325]. However, Josh Suereth [points out|https://github.com/sbt/sbt/issues/1325#issuecomment-43221549] that the issue is caused by Ivy which "never migrated to maven's new snapshot system".
- Mark Derricutt [writes that|http://maven.40175.n5.nabble.com/Looking-for-help-with-Apache-Ivy-retrieving-timestamped-SNAPSHOT-artifact-from-Nexus-Pro-td5785168.html] "AFAIK Ivy doesn't support timestamped SNAPSHOTs from a repository".



--
This message was sent by Atlassian JIRA
(v6.2#6252)