mirror of https://github.com/sbt/sbt.git
Fix #1136 - Ivy's `+` dependencies not converted to maven style syntax.
* Attempt to convert dependencies that end in `+` into maven-style version range * if a failure occurs, just use the original version (could be bad...).
This commit is contained in:
parent
71c9ec0e55
commit
8cd44646b7
|
|
@ -188,7 +188,7 @@ class MakePom(val log: Logger)
|
|||
<dependency>
|
||||
<groupId>{mrid.getOrganisation}</groupId>
|
||||
<artifactId>{mrid.getName}</artifactId>
|
||||
<version>{mrid.getRevision}</version>
|
||||
<version>{makeDependencyVersion(mrid.getRevision)}</version>
|
||||
{ scopeElem(scope) }
|
||||
{ optionalElem(optional) }
|
||||
{ classifierElem(classifier) }
|
||||
|
|
@ -197,6 +197,25 @@ class MakePom(val log: Logger)
|
|||
</dependency>
|
||||
}
|
||||
|
||||
|
||||
|
||||
def makeDependencyVersion(revision: String): String = {
|
||||
if(revision endsWith "+") try {
|
||||
// TODO - this is the slowest possible implementation.
|
||||
val beforePlus = revision.reverse.dropWhile(_ != '.').drop(1).reverse
|
||||
val lastVersion = beforePlus.reverse.takeWhile(_ != '.').reverse
|
||||
val lastVersionInt = lastVersion.toInt
|
||||
val prefixVersion = beforePlus.reverse.dropWhile(_ != '.').drop(1).reverse
|
||||
s"[$beforePlus, ${prefixVersion}.${lastVersionInt+1})"
|
||||
} catch {
|
||||
case e: NumberFormatException =>
|
||||
// TODO - if the version deosn't meet our expectations, maybe we just issue a hard
|
||||
// error instead of softly ignoring the attempt to rewrite.
|
||||
//sys.error(s"Could not fix version [$revision] into maven style version")
|
||||
revision
|
||||
} else revision
|
||||
}
|
||||
|
||||
@deprecated("No longer used and will be removed.", "0.12.1")
|
||||
def classifier(dependency: DependencyDescriptor, includeTypes: Set[String]): NodeSeq =
|
||||
{
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ object MakePomTest extends Build
|
|||
for {
|
||||
dep <- pomXml \ "dependencies" \ "dependency"
|
||||
if (dep \ "artifactId").text == "jsr305"
|
||||
if (dep \ "version").text contains "+"
|
||||
if (dep \ "version").text != "[1.3, 1.4)"
|
||||
} sys.error(s"Found dependency with invalid maven version: $dep")
|
||||
()
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue