diff options
author | Christopher Vogt <oss.nsp@cvogt.org> | 2016-04-03 00:09:19 -0400 |
---|---|---|
committer | Christopher Vogt <oss.nsp@cvogt.org> | 2016-04-03 00:09:26 -0400 |
commit | 83d6e39764103bde44d5812aa873ed7537cc8c97 (patch) | |
tree | 60a070ef1511aa525cec9bf4c19034804b829679 /stage2/BasicBuild.scala | |
parent | 8eae49b7b0a39f23518680b56429314db3d977e1 (diff) | |
download | cbt-83d6e39764103bde44d5812aa873ed7537cc8c97.tar.gz cbt-83d6e39764103bde44d5812aa873ed7537cc8c97.tar.bz2 cbt-83d6e39764103bde44d5812aa873ed7537cc8c97.zip |
Implement alternative resolvers
This commit also
- requires Dependencies to explicitly implement canBeCached
- unifies some logic for dependency downloading
- moves SBT-like dependency DSL into its own trait
- error message showing build directory for exceptions in builds
Not splitting this up in favor of faster progress to 1.0.
The user facing API can probably be slightly improved using implicits
inside of BasicBuild, but we can do that later.
Diffstat (limited to 'stage2/BasicBuild.scala')
-rw-r--r-- | stage2/BasicBuild.scala | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/stage2/BasicBuild.scala b/stage2/BasicBuild.scala index eac78ea..39cc9e3 100644 --- a/stage2/BasicBuild.scala +++ b/stage2/BasicBuild.scala @@ -12,7 +12,7 @@ import scala.collection.immutable.Seq import scala.util._ class BasicBuild( context: Context ) extends Build( context ) -class Build(val context: Context) extends Dependency with TriggerLoop{ +class Build(val context: Context) extends Dependency with TriggerLoop with SbtDependencyDsl{ // library available to builds implicit final val logger: Logger = context.logger implicit final val classLoaderCache: ClassLoaderCache = context.classLoaderCache @@ -21,6 +21,7 @@ class Build(val context: Context) extends Dependency with TriggerLoop{ // ========== general stuff ========== + override def canBeCached = false def enableConcurrency = false final def projectDirectory: File = lib.realpath(context.cwd) assert( projectDirectory.exists, "projectDirectory does not exist: " ++ projectDirectory.string ) @@ -33,7 +34,9 @@ class Build(val context: Context) extends Dependency with TriggerLoop{ def zincVersion = "0.3.9" def dependencies: Seq[Dependency] = Seq( - "org.scala-lang" % "scala-library" % scalaVersion + MavenRepository.central.resolve( + "org.scala-lang" % "scala-library" % scalaVersion + ) ) // ========== paths ========== @@ -85,22 +88,6 @@ class Build(val context: Context) extends Dependency with TriggerLoop{ scalaVersion: String = scalaMajorVersion ) = lib.ScalaDependency( groupId, artifactId, version, classifier, scalaVersion ) - /** SBT-like dependency builder DSL for syntax compatibility */ - class DependencyBuilder2( groupId: String, artifactId: String, scalaVersion: Option[String] ){ - def %(version: String) = scalaVersion.map( - v => ScalaDependency(groupId, artifactId, version, scalaVersion = v) - ).getOrElse( - JavaDependency(groupId, artifactId, version) - ) - } - implicit class DependencyBuilder(groupId: String){ - def %%(artifactId: String) = new DependencyBuilder2( groupId, artifactId, Some(scalaMajorVersion) ) - def %(artifactId: String) = new DependencyBuilder2( groupId, artifactId, None ) - } - implicit class DependencyBuilder3(d: JavaDependency){ - def %(classifier: String) = d.copy(classifier = Classifier(Some(classifier))) - } - final def BuildDependency(path: File) = cbt.BuildDependency( context.copy( cwd = path, args = Seq() ) ) @@ -129,8 +116,8 @@ class Build(val context: Context) extends Dependency with TriggerLoop{ def needsUpdate: Boolean = needsUpdateCache( context.cbtHasChanged || lib.needsUpdate( sourceFiles, compileStatusFile ) - || transitiveDependencies.exists(_.needsUpdate) - ) + || transitiveDependencies.exists(_.needsUpdate) + ) private object compileCache extends Cache[Option[File]] def compile: Option[File] = compileCache{ |