aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2016-05-03 00:45:50 +0300
committerChristopher Vogt <oss.nsp@cvogt.org>2016-05-03 10:27:23 +0300
commit323dd568b61a49c0ac17dbf3ad50098e82c2989b (patch)
treef67f5f259ff73f4c3a516310bc1d8e342eb56e98
parentaf207e272664720b77b376214292b0c5716fc20b (diff)
downloadcbt-323dd568b61a49c0ac17dbf3ad50098e82c2989b.tar.gz
cbt-323dd568b61a49c0ac17dbf3ad50098e82c2989b.tar.bz2
cbt-323dd568b61a49c0ac17dbf3ad50098e82c2989b.zip
Convenience factory methods for Resolvers
-rw-r--r--README.md2
-rw-r--r--build/build.scala2
-rw-r--r--plugins/scalatest/build/build.scala8
-rw-r--r--stage1/MavenRepository.scala15
-rw-r--r--stage1/Stage1Lib.scala10
-rw-r--r--stage1/cbt.scala7
-rw-r--r--stage1/resolver.scala26
-rw-r--r--stage2/BasicBuild.scala7
-rw-r--r--stage2/SbtDependencyDsl.scala28
-rw-r--r--stage2/Scaffold.scala37
-rw-r--r--stage2/ToolsTasks.scala23
-rw-r--r--test/simple/build/build.scala54
-rw-r--r--test/test.scala40
13 files changed, 124 insertions, 135 deletions
diff --git a/README.md b/README.md
index 2240893..b2df2b7 100644
--- a/README.md
+++ b/README.md
@@ -50,7 +50,7 @@ class Build(context: cbt.Context) extends PackageBuild(context){
override def artifactId = "play-json-extensions"
override def dependencies =
super.dependencies :+
- MavenResolver(context.cbtHasChanged,context.paths.mavenCache,MavenResolver.central).resolve(
+ resolver(mavenCentral).bind(
// encouraged way to declare dependencies
ScalaDependency("com.typesafe.play", "play-json", "2.4.4"),
MavenDependency("joda-time", "joda-time", "2.9.2")
diff --git a/build/build.scala b/build/build.scala
index 0f9efe5..0f93733 100644
--- a/build/build.scala
+++ b/build/build.scala
@@ -6,7 +6,7 @@ import scala.collection.immutable.Seq
class Build(context: Context) extends BasicBuild(context){
// FIXME: somehow consolidate this with cbt's own boot-strapping from source.
override def dependencies = {
- super.dependencies :+ MavenResolver(context.cbtHasChanged,context.paths.mavenCache,MavenResolver.central).resolve(
+ super.dependencies ++ Resolver(mavenCentral).bind(
MavenDependency("net.incongru.watchservice","barbary-watchservice","1.0"),
MavenDependency("org.eclipse.jgit", "org.eclipse.jgit", "4.2.0.201601211800-r"),
MavenDependency("com.typesafe.zinc","zinc","0.3.9"),
diff --git a/plugins/scalatest/build/build.scala b/plugins/scalatest/build/build.scala
index d36d940..1377fa8 100644
--- a/plugins/scalatest/build/build.scala
+++ b/plugins/scalatest/build/build.scala
@@ -4,10 +4,10 @@ import java.io.File
import scala.collection.immutable.Seq
class Build(context: Context) extends BasicBuild(context){
- override def dependencies = super.dependencies ++ Seq(
- MavenResolver(context.cbtHasChanged,context.paths.mavenCache,MavenResolver.central).resolve(
+ override def dependencies =
+ super.dependencies ++
+ Resolver( mavenCentral ).bind(
ScalaDependency("org.scalatest","scalatest","2.2.4")
- ),
+ ) :+
context.cbtDependency
- )
}
diff --git a/stage1/MavenRepository.scala b/stage1/MavenRepository.scala
index aa31cb8..06189d1 100644
--- a/stage1/MavenRepository.scala
+++ b/stage1/MavenRepository.scala
@@ -3,17 +3,8 @@ import scala.collection.immutable.Seq
import java.io._
import java.net._
case class MavenResolver( cbtHasChanged: Boolean, mavenCache: File, urls: URL* ){
- def resolve( dependencies: MavenDependency* )(implicit logger: Logger): BoundMavenDependencies
- = new BoundMavenDependencies( cbtHasChanged, mavenCache, urls.to, dependencies.to )
- def resolveOne( dependency: MavenDependency )(implicit logger: Logger): BoundMavenDependency
+ def bind( dependencies: MavenDependency* )(implicit logger: Logger): Seq[BoundMavenDependency]
+ = dependencies.map( BoundMavenDependency(cbtHasChanged,mavenCache,_,urls.to) ).to
+ def bindOne( dependency: MavenDependency )(implicit logger: Logger): BoundMavenDependency
= BoundMavenDependency( cbtHasChanged, mavenCache, dependency, urls.to )
}
-
-object MavenResolver{
- def central = new URL("https://repo1.maven.org/maven2")
- def jcenter = new URL("https://jcenter.bintray.com/releases")
- def bintray(owner: String) = new URL(s"https://dl.bintray.com/$owner/maven")
- private val sonatypeBase = new URL("https://oss.sonatype.org/content/repositories/")
- def sonatype = sonatypeBase ++ "releases"
- def sonatypeSnapshots = sonatypeBase ++ "snapshots"
-}
diff --git a/stage1/Stage1Lib.scala b/stage1/Stage1Lib.scala
index 7b09be2..027818c 100644
--- a/stage1/Stage1Lib.scala
+++ b/stage1/Stage1Lib.scala
@@ -150,8 +150,8 @@ class Stage1Lib( val logger: Logger ) extends BaseLib{
None
}else{
if( needsRecompile ){
- val central = MavenResolver(cbtHasChanged, mavenCache,MavenResolver.central)
- val zinc = central.resolveOne(MavenDependency("com.typesafe.zinc","zinc", zincVersion))
+ def Resolver(urls: URL*) = MavenResolver(cbtHasChanged, mavenCache, urls: _*)
+ val zinc = Resolver(mavenCentral).bindOne(MavenDependency("com.typesafe.zinc","zinc", zincVersion))
val zincDeps = zinc.transitiveDependencies
val sbtInterface =
@@ -176,9 +176,9 @@ class Stage1Lib( val logger: Logger ) extends BaseLib{
.getOrElse( throw new Exception(s"cannot find compiler-interface in zinc $zincVersion dependencies: "++zincDeps.toString) )
.jar
- val scalaLibrary = central.resolveOne(MavenDependency("org.scala-lang","scala-library",scalaVersion)).jar
- val scalaReflect = central.resolveOne(MavenDependency("org.scala-lang","scala-reflect",scalaVersion)).jar
- val scalaCompiler = central.resolveOne(MavenDependency("org.scala-lang","scala-compiler",scalaVersion)).jar
+ val scalaLibrary = Resolver(mavenCentral).bindOne(MavenDependency("org.scala-lang","scala-library",scalaVersion)).jar
+ val scalaReflect = Resolver(mavenCentral).bindOne(MavenDependency("org.scala-lang","scala-reflect",scalaVersion)).jar
+ val scalaCompiler = Resolver(mavenCentral).bindOne(MavenDependency("org.scala-lang","scala-compiler",scalaVersion)).jar
val start = System.currentTimeMillis
diff --git a/stage1/cbt.scala b/stage1/cbt.scala
index 33422cc..b1c462b 100644
--- a/stage1/cbt.scala
+++ b/stage1/cbt.scala
@@ -6,6 +6,13 @@ import scala.collection.immutable.Seq
import java.util.concurrent.ConcurrentHashMap
object `package`{
+ val mavenCentral = new URL("https://repo1.maven.org/maven2")
+ val jcenter = new URL("https://jcenter.bintray.com")
+ def bintray(owner: String) = new URL(s"https://dl.bintray.com/$owner/maven") // FIXME: url encode owner
+ private val sonatypeBase = new URL("https://oss.sonatype.org/content/repositories/")
+ val sonatypeReleases = sonatypeBase ++ "releases"
+ val sonatypeSnapshots = sonatypeBase ++ "snapshots"
+
private val lib = new BaseLib
implicit class FileExtensionMethods( file: File ){
def ++( s: String ): File = {
diff --git a/stage1/resolver.scala b/stage1/resolver.scala
index d195fa4..cd5f3e8 100644
--- a/stage1/resolver.scala
+++ b/stage1/resolver.scala
@@ -109,9 +109,9 @@ abstract class DependencyImplementation extends Dependency{
}
// TODO: all this hard codes the scala version, needs more flexibility
-class ScalaCompilerDependency(cbtHasChanged: Boolean, mavenCache: File, version: String)(implicit logger: Logger) extends BoundMavenDependency(cbtHasChanged, mavenCache, MavenDependency("org.scala-lang","scala-compiler",version, Classifier.none), Seq(MavenResolver.central))
-class ScalaLibraryDependency (cbtHasChanged: Boolean, mavenCache: File, version: String)(implicit logger: Logger) extends BoundMavenDependency(cbtHasChanged, mavenCache, MavenDependency("org.scala-lang","scala-library",version, Classifier.none), Seq(MavenResolver.central))
-class ScalaReflectDependency (cbtHasChanged: Boolean, mavenCache: File, version: String)(implicit logger: Logger) extends BoundMavenDependency(cbtHasChanged, mavenCache, MavenDependency("org.scala-lang","scala-reflect",version, Classifier.none), Seq(MavenResolver.central))
+class ScalaCompilerDependency(cbtHasChanged: Boolean, mavenCache: File, version: String)(implicit logger: Logger) extends BoundMavenDependency(cbtHasChanged, mavenCache, MavenDependency("org.scala-lang","scala-compiler",version, Classifier.none), Seq(mavenCentral))
+class ScalaLibraryDependency (cbtHasChanged: Boolean, mavenCache: File, version: String)(implicit logger: Logger) extends BoundMavenDependency(cbtHasChanged, mavenCache, MavenDependency("org.scala-lang","scala-library",version, Classifier.none), Seq(mavenCentral))
+class ScalaReflectDependency (cbtHasChanged: Boolean, mavenCache: File, version: String)(implicit logger: Logger) extends BoundMavenDependency(cbtHasChanged, mavenCache, MavenDependency("org.scala-lang","scala-reflect",version, Classifier.none), Seq(mavenCentral))
case class ScalaDependencies(cbtHasChanged: Boolean, mavenCache: File, version: String)(implicit val logger: Logger) extends DependencyImplementation{ sd =>
override final val needsUpdate = false
@@ -146,11 +146,11 @@ case class Stage1Dependency(cbtHasChanged: Boolean, mavenCache: File, nailgunTar
override def exportedClasspath = ClassPath( Seq(nailgunTarget, stage1Target) )
val compatibilityDependency = CompatibilityDependency(cbtHasChanged, compatibilityTarget)
override def dependencies = Seq(
- compatibilityDependency,
- MavenResolver(cbtHasChanged,mavenCache,MavenResolver.central).resolve(
- MavenDependency("org.scala-lang","scala-library",constants.scalaVersion),
- MavenDependency("org.scala-lang.modules","scala-xml_"+constants.scalaMajorVersion,constants.scalaXmlVersion)
- )
+ compatibilityDependency
+ ) ++
+ MavenResolver(cbtHasChanged,mavenCache,mavenCentral).bind(
+ MavenDependency("org.scala-lang","scala-library",constants.scalaVersion),
+ MavenDependency("org.scala-lang.modules","scala-xml_"+constants.scalaMajorVersion,constants.scalaXmlVersion)
)
}
case class CompatibilityDependency(cbtHasChanged: Boolean, compatibilityTarget: File)(implicit val logger: Logger) extends DependencyImplementation{
@@ -165,11 +165,11 @@ case class CbtDependency(cbtHasChanged: Boolean, mavenCache: File, nailgunTarget
override def exportedClasspath = ClassPath( Seq( stage2Target ) )
val stage1Dependency = Stage1Dependency(cbtHasChanged, mavenCache, nailgunTarget, stage1Target, compatibilityTarget)
override def dependencies = Seq(
- stage1Dependency,
- MavenResolver(cbtHasChanged, mavenCache,MavenResolver.central).resolve(
- MavenDependency("net.incongru.watchservice","barbary-watchservice","1.0"),
- MavenDependency("org.eclipse.jgit", "org.eclipse.jgit", "4.2.0.201601211800-r")
- )
+ stage1Dependency
+ ) ++
+ MavenResolver(cbtHasChanged, mavenCache,mavenCentral).bind(
+ MavenDependency("net.incongru.watchservice","barbary-watchservice","1.0"),
+ MavenDependency("org.eclipse.jgit", "org.eclipse.jgit", "4.2.0.201601211800-r")
)
}
diff --git a/stage2/BasicBuild.scala b/stage2/BasicBuild.scala
index fb5e652..4ae4cd1 100644
--- a/stage2/BasicBuild.scala
+++ b/stage2/BasicBuild.scala
@@ -47,12 +47,11 @@ class BasicBuild(val context: Context) extends DependencyImplementation with Bui
def copy(context: Context): BuildInterface = lib.copy(this.getClass, context).asInstanceOf[BuildInterface]
def zincVersion = "0.3.9"
- def dependencies: Seq[Dependency] = Seq(
+ def dependencies: Seq[Dependency] =
// FIXME: this should probably be removed
- MavenResolver(context.cbtHasChanged, context.paths.mavenCache, MavenResolver.central).resolve(
+ Resolver( mavenCentral ).bind(
"org.scala-lang" % "scala-library" % scalaVersion
)
- )
// ========== paths ==========
final private val defaultSourceDirectory = projectDirectory ++ "/src"
@@ -92,6 +91,8 @@ class BasicBuild(val context: Context) extends DependencyImplementation with Bui
}
assertSourceDirectories()
+ def Resolver( urls: URL* ) = MavenResolver( context.cbtHasChanged, context.paths.mavenCache, urls: _* )
+
def ScalaDependency(
groupId: String, artifactId: String, version: String, classifier: Classifier = Classifier.none,
scalaVersion: String = scalaMajorVersion
diff --git a/stage2/SbtDependencyDsl.scala b/stage2/SbtDependencyDsl.scala
index d8c0786..4c95308 100644
--- a/stage2/SbtDependencyDsl.scala
+++ b/stage2/SbtDependencyDsl.scala
@@ -12,32 +12,4 @@ trait SbtDependencyDsl{ self: BasicBuild =>
def %%(artifactId: String) = new DependencyBuilder2( groupId, artifactId, Some(scalaMajorVersion) )
def %(artifactId: String) = new DependencyBuilder2( groupId, artifactId, None )
}
- implicit class DependencyBuilder3(d: MavenDependency){
- def %(classifier: String): MavenDependency = d//.copy(classifier = Classifier(Some(classifier)))
- }
-
- /*
- /** SBT-like dependency builder DSL for syntax compatibility */
- implicit class DependencyBuilder0(repository: Maven){
- def %(groupId: String) = new DependencyBuilder1b(repository, groupId)
- }
- implicit class DependencyBuilder1a(groupId: String){
- def %%(artifactId: String) = new DependencyBuilder2( Maven.central, groupId, artifactId, Some(scalaMajorVersion) )
- def %(artifactId: String) = new DependencyBuilder2( Maven.central, groupId, artifactId, None )
- }
- class DependencyBuilder1b(repository: Maven, groupId: String){
- def %%(artifactId: String) = new DependencyBuilder2( repository, groupId, artifactId, Some(scalaMajorVersion) )
- def %(artifactId: String) = new DependencyBuilder2( repository, groupId, artifactId, None )
- }
- class DependencyBuilder2( repository: Maven, groupId: String, artifactId: String, scalaMajorVersion: Option[String] ){
- def %(version: String) = scalaMajorVersion.map(
- v => repository(groupId, artifactId, version, scalaMajorVersion = v)
- ).getOrElse(
- repository.java(groupId, artifactId, version)
- )
- }
- implicit class DependencyBuilder3(d: MavenDependency){
- def %(classifier: String) = d.copy(classifier = Classifier(Some(classifier)))
- }
- */
} \ No newline at end of file
diff --git a/stage2/Scaffold.scala b/stage2/Scaffold.scala
index 407fee1..6c66b04 100644
--- a/stage2/Scaffold.scala
+++ b/stage2/Scaffold.scala
@@ -13,7 +13,7 @@ trait Scaffold{
println( GREEN ++ "Created " ++ fileName ++ RESET )
}
- def scaffoldBasicBuild(
+ def createBasicBuild(
projectDirectory: File
): Unit = {
createFile(projectDirectory, "build/build.scala", s"""import cbt._
@@ -23,11 +23,17 @@ import scala.collection.immutable.Seq
class Build(context: Context) extends BasicBuild(context){
override def dependencies = { // don't forget super.dependencies here
- super.dependencies :+ MavenResolver(context.cbtHasChanged,context.paths.mavenCache,MavenResolver.central).resolve(
- MavenDependency("net.incongru.watchservice","barbary-watchservice","1.0"),
- MavenDependency("org.eclipse.jgit", "org.eclipse.jgit", "4.2.0.201601211800-r"),
- MavenDependency("com.typesafe.zinc","zinc","0.3.9"),
- ScalaDependency("org.scala-lang.modules","scala-xml","1.0.5")
+ super.dependencies ++ Resolver( mavenCentral ).bind(
+ /*
+ // Scala dependency automatically adding Scala major version to artifact id
+ ScalaDependency("com.lihaoyi", "ammonite-ops", "0.5.5")
+ // SBT-style Scala dependency
+ "com.lihaoyi" %% "ammonite-ops" % "0.5.5"
+ // Java dependency directly corresponding to maven artifact id
+ MavenDependency("com.lihaoyi", "ammonite-ops_2.11", "0.5.5")
+ // SBT-style Java dependency
+ "com.lihaoyi" % "ammonite-ops_2.11" % "0.5.5"
+ */
)
}
}
@@ -36,7 +42,7 @@ class Build(context: Context) extends BasicBuild(context){
}
- def scaffoldBuildBuild(
+ def createBuildBuild(
projectDirectory: File
): Unit = {
createFile(projectDirectory, "build/build/build.scala", s"""import cbt._
@@ -45,9 +51,20 @@ import java.io.File
import scala.collection.immutable.Seq
class Build(context: Context) extends BuildBuild(context){
- override def dependencies = super.dependencies ++ Seq(
- // , "com.lihaoyi" %% "ammonite-ops" % "0.5.5"
- )
+ override def dependencies = { // don't forget super.dependencies here
+ super.dependencies ++ Resolver( mavenCentral ).bind(
+ /*
+ // Scala dependency automatically adding Scala major version to artifact id
+ ScalaDependency("com.lihaoyi", "ammonite-ops", "0.5.5")
+ // SBT-style Scala dependency
+ "com.lihaoyi" %% "ammonite-ops" % "0.5.5"
+ // Java dependency directly corresponding to maven artifact id
+ MavenDependency("com.lihaoyi", "ammonite-ops_2.11", "0.5.5")
+ // SBT-style Java dependency
+ "com.lihaoyi" % "ammonite-ops_2.11" % "0.5.5"
+ */
+ )
+ }
}
"""
)
diff --git a/stage2/ToolsTasks.scala b/stage2/ToolsTasks.scala
index 46f1336..5afbac0 100644
--- a/stage2/ToolsTasks.scala
+++ b/stage2/ToolsTasks.scala
@@ -1,5 +1,6 @@
package cbt
import scala.collection.immutable.Seq
+import java.net._
import java.io.{Console=>_,_}
import java.nio.file._
class ToolsTasks(
@@ -13,14 +14,16 @@ class ToolsTasks(
){
private val paths = CbtPaths(cbtHome, cache)
import paths._
- private val mavenCentral = MavenResolver(cbtHasChanged,mavenCache,MavenResolver.central)
+ private def Resolver( urls: URL* ) = MavenResolver(cbtHasChanged,mavenCache,urls: _*)
implicit val logger: Logger = lib.logger
+ def createBasicBuild: Unit = lib.createBasicBuild( cwd )
+ def createBuildBuild: Unit = lib.createBuildBuild( cwd )
def resolve = {
ClassPath.flatten(
args(1).split(",").toVector.map{
d =>
val v = d.split(":")
- mavenCentral.resolveOne(MavenDependency(v(0),v(1),v(2))).classpath
+ Resolver(mavenCentral).bindOne(MavenDependency(v(0),v(1),v(2))).classpath
}
)
}
@@ -28,14 +31,14 @@ class ToolsTasks(
args(1).split(",").toVector.map{
d =>
val v = d.split(":")
- mavenCentral.resolveOne(MavenDependency(v(0),v(1),v(2))).dependencyTree
+ Resolver(mavenCentral).bindOne(MavenDependency(v(0),v(1),v(2))).dependencyTree
}.mkString("\n\n")
}
def amm = ammonite
def ammonite = {
val version = args.lift(1).getOrElse(constants.scalaVersion)
val scalac = new ScalaCompilerDependency( cbtHasChanged,mavenCache, version )
- val d = mavenCentral.resolveOne(
+ val d = Resolver(mavenCentral).bindOne(
MavenDependency(
"com.lihaoyi","ammonite-repl_2.11.7",args.lift(1).getOrElse("0.5.7")
)
@@ -52,24 +55,22 @@ class ToolsTasks(
"scala.tools.nsc.MainGenericRunner", Seq("-cp", scalac.classpath.string), scalac.classLoader(classLoaderCache)
)
}
- def scaffoldBasicBuild: Unit = lib.scaffoldBasicBuild( cwd )
- def scaffoldBuildBuild: Unit = lib.scaffoldBuildBuild( cwd )
def cbtEarlyDependencies = {
val scalaVersion = args.lift(1).getOrElse(constants.scalaVersion)
val scalaMajorVersion = scalaVersion.split("\\.").take(2).mkString(".")
val scalaXmlVersion = args.lift(2).getOrElse(constants.scalaXmlVersion)
val zincVersion = args.lift(3).getOrElse(constants.zincVersion)
val scalaDeps = Seq(
- mavenCentral.resolveOne(MavenDependency("org.scala-lang","scala-reflect",scalaVersion)),
- mavenCentral.resolveOne(MavenDependency("org.scala-lang","scala-compiler",scalaVersion))
+ Resolver(mavenCentral).bindOne(MavenDependency("org.scala-lang","scala-reflect",scalaVersion)),
+ Resolver(mavenCentral).bindOne(MavenDependency("org.scala-lang","scala-compiler",scalaVersion))
)
val scalaXml = Dependencies(
- mavenCentral.resolveOne(MavenDependency("org.scala-lang.modules","scala-xml_"+scalaMajorVersion,scalaXmlVersion)),
- mavenCentral.resolveOne(MavenDependency("org.scala-lang","scala-library",scalaVersion))
+ Resolver(mavenCentral).bindOne(MavenDependency("org.scala-lang.modules","scala-xml_"+scalaMajorVersion,scalaXmlVersion)),
+ Resolver(mavenCentral).bindOne(MavenDependency("org.scala-lang","scala-library",scalaVersion))
)
- val zinc = mavenCentral.resolveOne(MavenDependency("com.typesafe.zinc","zinc",zincVersion))
+ val zinc = Resolver(mavenCentral).bindOne(MavenDependency("com.typesafe.zinc","zinc",zincVersion))
def valName(dep: BoundMavenDependency) = {
val words = dep.artifactId.split("_").head.split("-")
diff --git a/test/simple/build/build.scala b/test/simple/build/build.scala
index ab901e9..b5955c9 100644
--- a/test/simple/build/build.scala
+++ b/test/simple/build/build.scala
@@ -7,34 +7,32 @@ class Build(context: cbt.Context) extends BasicBuild(context){
super.dependencies
++
Seq(
- GitDependency("https://github.com/xdotai/diff.git", "698717469b8dd86e8570b86354892be9c0654caf"),
- // FIXME: make the below less verbose
- MavenResolver(context.cbtHasChanged,context.paths.mavenCache,MavenResolver.central).resolve(
- ScalaDependency("com.typesafe.play", "play-json", "2.4.4"),
- MavenDependency("joda-time", "joda-time", "2.9.2"),
- // the below tests pom inheritance with dependencyManagement and variable substitution for pom properties
- MavenDependency("org.eclipse.jgit", "org.eclipse.jgit", "4.2.0.201601211800-r"),
- // the below tests pom inheritance with variable substitution for pom xml tag contents
- MavenDependency("com.spotify", "missinglink-core", "0.1.1"),
- // the below tests pom inheritance with variable substitution being parts of strings
- MavenDependency("cc.factorie","factorie_2.11","1.2")
- // the dependency below uses a maven version range. Currently not supported.
- // TODO: put in a proper error message for version range not supported
- //MavenDependency("com.github.nikita-volkov", "sext", "0.2.4")
- // currently breaks with can't find https://repo1.maven.org/maven2/org/apache/avro/avro-mapred/1.7.7/avro-mapred-1.7.7-hadoop2.pom.sha1
- // org.apache.spark:spark-sql_2.11:1.6.1
- ),
- MavenResolver(
- context.cbtHasChanged,
- context.paths.mavenCache,
- MavenResolver.central,
- MavenResolver.bintray("tpolecat"),
- MavenResolver.sonatypeSnapshots
- ).resolve(
- "org.cvogt" %% "play-json-extensions" % "0.8.0",
- "org.tpolecat" %% "tut-core" % "0.4.2",
- "ai.x" %% "lens" % "1.0.0-SNAPSHOT"
- )
+ GitDependency("https://github.com/xdotai/diff.git", "698717469b8dd86e8570b86354892be9c0654caf")
+ ) ++
+ // FIXME: make the below less verbose
+ Resolver( mavenCentral ).bind(
+ ScalaDependency("com.typesafe.play", "play-json", "2.4.4"),
+ MavenDependency("joda-time", "joda-time", "2.9.2"),
+ // the below tests pom inheritance with dependencyManagement and variable substitution for pom properties
+ MavenDependency("org.eclipse.jgit", "org.eclipse.jgit", "4.2.0.201601211800-r"),
+ // the below tests pom inheritance with variable substitution for pom xml tag contents
+ MavenDependency("com.spotify", "missinglink-core", "0.1.1"),
+ // the below tests pom inheritance with variable substitution being parts of strings
+ MavenDependency("cc.factorie","factorie_2.11","1.2")
+ // the dependency below uses a maven version range. Currently not supported.
+ // TODO: put in a proper error message for version range not supported
+ //MavenDependency("com.github.nikita-volkov", "sext", "0.2.4")
+ // currently breaks with can't find https://repo1.maven.org/maven2/org/apache/avro/avro-mapred/1.7.7/avro-mapred-1.7.7-hadoop2.pom.sha1
+ // org.apache.spark:spark-sql_2.11:1.6.1
+ ) ++
+ Resolver(
+ mavenCentral,
+ bintray("tpolecat"),
+ sonatypeSnapshots
+ ).bind(
+ "org.cvogt" %% "play-json-extensions" % "0.8.0",
+ "org.tpolecat" %% "tut-core" % "0.4.2",
+ "ai.x" %% "lens" % "1.0.0-SNAPSHOT"
)
)
}
diff --git a/test/test.scala b/test/test.scala
index bebd143..b425cfa 100644
--- a/test/test.scala
+++ b/test/test.scala
@@ -2,6 +2,7 @@ import cbt._
import scala.collection.immutable.Seq
import java.util.concurrent.ConcurrentHashMap
import java.io.File
+import java.net.URL
// micro framework
object Main{
@@ -76,7 +77,7 @@ object Main{
val cache = cbtHome ++ "/cache"
val mavenCache = cache ++ "/maven"
val cbtHasChanged = true
- val mavenCentral = MavenResolver(cbtHasChanged, mavenCache, MavenResolver.central)
+ def Resolver(urls: URL*) = MavenResolver(cbtHasChanged, mavenCache, urls: _*)
{
val noContext = ContextImplementation(
@@ -97,12 +98,11 @@ object Main{
)
val b = new BasicBuild(noContext){
- override def dependencies = Seq(
- mavenCentral.resolve(
+ override def dependencies =
+ Resolver(mavenCentral).bind(
MavenDependency("net.incongru.watchservice","barbary-watchservice","1.0"),
MavenDependency("net.incongru.watchservice","barbary-watchservice","1.0")
)
- )
}
val cp = b.classpath
assert(cp.strings.distinct == cp.strings, "duplicates in classpath: " ++ cp.string)
@@ -110,36 +110,38 @@ object Main{
// test that messed up artifacts crash with an assertion (which should tell the user what's up)
assertException[AssertionError](){
- mavenCentral.resolveOne( MavenDependency("com.jcraft", "jsch", " 0.1.53") ).classpath
+ Resolver(mavenCentral).bindOne( MavenDependency("com.jcraft", "jsch", " 0.1.53") ).classpath
}
assertException[AssertionError](){
- mavenCentral.resolveOne( MavenDependency("com.jcraft", null, "0.1.53") ).classpath
+ Resolver(mavenCentral).bindOne( MavenDependency("com.jcraft", null, "0.1.53") ).classpath
}
assertException[AssertionError](){
- mavenCentral.resolveOne( MavenDependency("com.jcraft", "", " 0.1.53") ).classpath
+ Resolver(mavenCentral).bindOne( MavenDependency("com.jcraft", "", " 0.1.53") ).classpath
}
assertException[AssertionError](){
- mavenCentral.resolveOne( MavenDependency("com.jcraft%", "jsch", " 0.1.53") ).classpath
+ Resolver(mavenCentral).bindOne( MavenDependency("com.jcraft%", "jsch", " 0.1.53") ).classpath
}
assertException[AssertionError](){
- mavenCentral.resolveOne( MavenDependency("", "jsch", " 0.1.53") ).classpath
+ Resolver(mavenCentral).bindOne( MavenDependency("", "jsch", " 0.1.53") ).classpath
}
(
- MavenResolver(
- cbtHasChanged, mavenCache, MavenResolver.central, MavenResolver.bintray("tpolecat")
- ).resolve(
- lib.ScalaDependency("org.tpolecat","tut-core","0.4.2", scalaMajorVersion="2.11")
+ Dependencies(
+ Resolver( mavenCentral, bintray("tpolecat") ).bind(
+ lib.ScalaDependency("org.tpolecat","tut-core","0.4.2", scalaMajorVersion="2.11")
+ )
).classpath.strings
++
- MavenResolver(cbtHasChanged, mavenCache,MavenResolver.sonatype).resolve(
+ Dependencies(
+ Resolver(sonatypeReleases).bind(
MavenDependency("org.cvogt","play-json-extensions_2.11","0.8.0")
- ).classpath.strings
+ )
+ ).classpath.strings
++
- MavenResolver(
- cbtHasChanged, mavenCache, MavenResolver.central, MavenResolver.sonatypeSnapshots
- ).resolve(
- MavenDependency("ai.x","lens_2.11","1.0.0-SNAPSHOT")
+ Dependencies(
+ Resolver( mavenCentral, sonatypeSnapshots ).bind(
+ MavenDependency("ai.x","lens_2.11","1.0.0-SNAPSHOT")
+ )
).classpath.strings
).foreach{
path => assert(new File(path).exists, path)