aboutsummaryrefslogtreecommitdiff
path: root/stage1
diff options
context:
space:
mode:
Diffstat (limited to 'stage1')
-rw-r--r--stage1/Stage1Lib.scala4
-rw-r--r--stage1/resolver.scala68
2 files changed, 38 insertions, 34 deletions
diff --git a/stage1/Stage1Lib.scala b/stage1/Stage1Lib.scala
index f66eff4..565a06c 100644
--- a/stage1/Stage1Lib.scala
+++ b/stage1/Stage1Lib.scala
@@ -240,7 +240,7 @@ class Stage1Lib( logger: Logger ) extends BaseLib{
zincDeps
.collect{ case d @
BoundMavenDependency(
- _, _, MavenDependency( "com.typesafe.sbt", "sbt-interface", _, Classifier.none, _), _
+ _, _, MavenDependency( "com.typesafe.sbt", "sbt-interface", _, Classifier.none, _), _, _
) => d
}
.headOption
@@ -251,7 +251,7 @@ class Stage1Lib( logger: Logger ) extends BaseLib{
zincDeps
.collect{ case d @
BoundMavenDependency(
- _, _, MavenDependency( "com.typesafe.sbt", "compiler-interface", _, Classifier.sources, _), _
+ _, _, MavenDependency( "com.typesafe.sbt", "compiler-interface", _, Classifier.sources, _), _, _
) => d
}
.headOption
diff --git a/stage1/resolver.scala b/stage1/resolver.scala
index 318ea59..47d4460 100644
--- a/stage1/resolver.scala
+++ b/stage1/resolver.scala
@@ -221,7 +221,8 @@ object MavenDependency{
}
// FIXME: take MavenResolver instead of mavenCache and repositories separately
case class BoundMavenDependency(
- cbtLastModified: Long, mavenCache: File, mavenDependency: MavenDependency, repositories: Seq[URL]
+ cbtLastModified: Long, mavenCache: File, mavenDependency: MavenDependency, repositories: Seq[URL],
+ replace: MavenDependency => Seq[MavenDependency] => Seq[MavenDependency] = _ => (identity _)
)(
implicit val logger: Logger, val transientCache: java.util.Map[AnyRef,AnyRef], val classLoaderCache: ClassLoaderCache
) extends ArtifactInfo with DependencyImplementation{
@@ -303,8 +304,9 @@ case class BoundMavenDependency(
(parent \ "artifactId").text,
(parent \ "version").text
),
- repositories
- )
+ repositories,
+ replace
+ )(logger, transientCache, classLoaderCache)
}.flatMap(_.transitivePom) :+ this
}
@@ -331,37 +333,39 @@ case class BoundMavenDependency(
).toMap
def dependencies: Seq[BoundMavenDependency] = {
- if(classifier == Classifier.sources) Seq()
- else {
- lib.cacheOnDisk(
+ replace(mavenDependency)(
+ if(classifier == Classifier.sources) Seq()
+ else {
+ lib.cacheOnDisk(
cbtLastModified, mavenCache ++ basePath(true) ++ ".pom.dependencies"
- )( MavenDependency.deserialize )( _.serialize ){
- (pomXml \ "dependencies" \ "dependency").collect{
+ )( MavenDependency.deserialize )( _.serialize ){
+ (pomXml \ "dependencies" \ "dependency").collect{
case xml if ( (xml \ "scope").text == "" || (xml \ "scope").text == "compile" ) && (xml \ "optional").text != "true" =>
- val artifactId = lookup(xml,_ \ "artifactId").get
- val groupId =
- lookup(xml,_ \ "groupId").getOrElse(
- dependencyVersions
- .get(artifactId).map(_._1)
- .getOrElse(
- throw new Exception(s"$artifactId not found in \n$dependencyVersions")
- )
- )
- val version =
- lookup(xml,_ \ "version").getOrElse(
- dependencyVersions
- .get(artifactId).map(_._2)
- .getOrElse(
- throw new Exception(s"$artifactId not found in \n$dependencyVersions")
- )
- )
- val classifier = Classifier( Some( (xml \ "classifier").text ).filterNot(_ == "").filterNot(_ == null) )
- MavenDependency( groupId, artifactId, version, classifier )
- }.toVector
- }.map(
- BoundMavenDependency( cbtLastModified, mavenCache, _, repositories )
- ).to
- }
+ val artifactId = lookup(xml,_ \ "artifactId").get
+ val groupId =
+ lookup(xml,_ \ "groupId").getOrElse(
+ dependencyVersions
+ .get(artifactId).map(_._1)
+ .getOrElse(
+ throw new Exception(s"$artifactId not found in \n$dependencyVersions")
+ )
+ )
+ val version =
+ lookup(xml,_ \ "version").getOrElse(
+ dependencyVersions
+ .get(artifactId).map(_._2)
+ .getOrElse(
+ throw new Exception(s"$artifactId not found in \n$dependencyVersions")
+ )
+ )
+ val classifier = Classifier( Some( (xml \ "classifier").text ).filterNot(_ == "").filterNot(_ == null) )
+ MavenDependency( groupId, artifactId, version, classifier )
+ }.toVector
+ }
+ }
+ ).map(
+ BoundMavenDependency( cbtLastModified, mavenCache, _, repositories, replace )
+ ).to
}
def lookup( xml: Node, accessor: Node => NodeSeq ): Option[String] = {
// println("lookup in " + xml)