Merge pull request #2226 from sbt/wip/build-imports

Make object Import to alias types and values
This commit is contained in:
eugene yokota 2015-10-02 04:31:46 -04:00
commit 2c4583e312
136 changed files with 684 additions and 157 deletions

View File

@ -18,7 +18,7 @@ env:
- SCRIPTED_TEST="safeUnitTests"
- SCRIPTED_TEST="otherUnitTests"
- SCRIPTED_TEST="scripted actions/*"
- SCRIPTED_TEST="scripted api/*"
- SCRIPTED_TEST="scripted apiinfo/*"
- SCRIPTED_TEST="scripted compiler-project/*"
- SCRIPTED_TEST="scripted dependency-management/*1of2"
- SCRIPTED_TEST="scripted dependency-management/*2of2"
@ -35,8 +35,8 @@ env:
- SCRIPTED_TEST="scripted tests/*"
- SCRIPTED_TEST="scripted project-load/*"
- SCRIPTED_TEST="checkBuildScala211"
- SCRIPTED_TEST="mavenResolverPluginTest:scripted dependency-management/*1of2 project/transitive-plugins"
- SCRIPTED_TEST="mavenResolverPluginTest:scripted dependency-management/*2of2"
# - SCRIPTED_TEST="mavenResolverPluginTest:scripted dependency-management/*1of2 project/transitive-plugins"
# - SCRIPTED_TEST="mavenResolverPluginTest:scripted dependency-management/*2of2"
notifications:
email:

View File

@ -202,6 +202,7 @@ lazy val mavenResolverPluginProj = (project in file("sbt-maven-resolver")).
dependsOn(sbtProj).
settings(
baseSettings,
sbtBinaryVersion := "1.0.0-SNAPSHOT",
name := "sbt-maven-resolver",
libraryDependencies ++= aetherLibs ++ Seq(utilTesting % Test, (libraryManagement % Test).classifier("tests"), libraryManagement % Test),
sbtPlugin := true

View File

@ -72,8 +72,8 @@ object CacheIvy {
}
implicit def updateStatsFormat: Format[UpdateStats] =
wrap[UpdateStats, (Long, Long, Long)](us => (us.resolveTime, us.downloadTime, us.downloadSize), { case (rt, dt, ds) => new UpdateStats(rt, dt, ds, true) })
implicit def confReportFormat(implicit m: Format[String], mr: Format[Seq[ModuleReport]], oar: Format[Seq[OrganizationArtifactReport]], mi: Format[Seq[ModuleID]]): Format[ConfigurationReport] =
wrap[ConfigurationReport, (String, Seq[ModuleReport], Seq[OrganizationArtifactReport], Seq[ModuleID])](r => (r.configuration, r.modules, r.details, r.evicted), { case (c, m, d, v) => new ConfigurationReport(c, m, d, v) })
implicit def confReportFormat(implicit m: Format[String], mr: Format[Seq[ModuleReport]], oar: Format[Seq[OrganizationArtifactReport]]): Format[ConfigurationReport] =
wrap[ConfigurationReport, (String, Seq[ModuleReport], Seq[OrganizationArtifactReport])](r => (r.configuration, r.modules, r.details), { case (c, m, d) => new ConfigurationReport(c, m, d) })
implicit def moduleReportFormat(implicit cf: Format[Seq[Caller]], ff: Format[File]): Format[ModuleReport] = {
wrap[ModuleReport, (ModuleID, Seq[(Artifact, File)], Seq[Artifact], Option[String], Option[Long], Option[String], Option[String], Boolean, Option[String], Option[String], Option[String], Option[String], Map[String, String], Option[Boolean], Option[String], Seq[String], Seq[(String, Option[String])], Seq[Caller])](
m => (m.module, m.artifacts, m.missingArtifacts, m.status, m.publicationDate map { _.getTime }, m.resolver, m.artifactResolver, m.evicted, m.evictedData, m.evictedReason, m.problem, m.homepage, m.extraAttributes, m.isDefault, m.branch, m.configurations, m.licenses, m.callers),
@ -142,7 +142,7 @@ object CacheIvy {
implicit def inlineIvyIC: InputCache[InlineIvyConfiguration] = wrapIn
implicit def moduleSettingsIC: InputCache[ModuleSettings] =
unionInputCache[ModuleSettings, PomConfiguration :+: InlineConfiguration :+: InlineConfigurationWithExcludes :+: EmptyConfiguration :+: IvyFileConfiguration :+: HNil]
unionInputCache[ModuleSettings, PomConfiguration :+: InlineConfiguration :+: InlineConfigurationWithExcludes :+: IvyFileConfiguration :+: HNil]
implicit def ivyConfigurationIC: InputCache[IvyConfiguration] =
unionInputCache[IvyConfiguration, InlineIvyConfiguration :+: ExternalIvyConfiguration :+: HNil]
@ -152,13 +152,11 @@ object CacheIvy {
c.module :+: c.dependencies :+: c.ivyXML :+: c.configurations :+: c.defaultConfiguration.map(_.name) :+:
c.ivyScala :+: c.validate :+: c.overrides :+: c.excludes :+: HNil
implicit def moduleConfToHL = (m: ModuleConfiguration) => m.organization :+: m.name :+: m.revision :+: m.resolver :+: HNil
implicit def emptyToHL = (e: EmptyConfiguration) => e.module :+: e.ivyScala :+: e.validate :+: HNil
implicit def inlineToHL = (c: InlineConfiguration) => c.module :+: c.dependencies :+: c.ivyXML :+: c.configurations :+: c.defaultConfiguration.map(_.name) :+: c.ivyScala :+: c.validate :+: c.overrides :+: HNil
}
import L4._
implicit def inlineWithExcludesIC: InputCache[InlineConfigurationWithExcludes] = wrapIn
implicit def emptyIC: InputCache[EmptyConfiguration] = wrapIn
implicit def inlineIC: InputCache[InlineConfiguration] = wrapIn
implicit def moduleConfIC: InputCache[ModuleConfiguration] = wrapIn
@ -177,7 +175,7 @@ object CacheIvy {
implicit lazy val chainedIC: InputCache[ChainedResolver] = InputCache.lzy(wrapIn)
implicit lazy val resolverIC: InputCache[Resolver] =
unionInputCache[Resolver, ChainedResolver :+: JavaNet1Repository :+: MavenRepository :+: MavenCache :+: FileRepository :+: URLRepository :+: SshRepository :+: SftpRepository :+: RawRepository :+: HNil]
unionInputCache[Resolver, ChainedResolver :+: MavenRepository :+: MavenCache :+: FileRepository :+: URLRepository :+: SshRepository :+: SftpRepository :+: RawRepository :+: HNil]
implicit def moduleIC: InputCache[ModuleID] = wrapIn
implicitly[InputCache[Seq[Configuration]]]
@ -235,6 +233,4 @@ object CacheIvy {
implicit def authIC: InputCache[SshAuthentication] =
unionInputCache[SshAuthentication, PasswordAuthentication :+: KeyFileAuthentication :+: HNil]
implicit def javaNet1IC: InputCache[JavaNet1Repository] = singleton(JavaNet1Repository)
}

View File

@ -216,7 +216,7 @@ object Scoped {
final class RichInitializeTask[S](i: Initialize[Task[S]]) extends RichInitTaskBase[S, Task] {
protected def onTask[T](f: Task[S] => Task[T]): Initialize[Task[T]] = i apply f
def dependsOn(tasks: AnyInitTask*): Initialize[Task[S]] = (i, Initialize.joinAny[Task, Any](tasks)) { (thisTask, deps) => thisTask.dependsOn(deps: _*) }
def dependsOn(tasks: AnyInitTask*): Initialize[Task[S]] = (i, Initialize.joinAny[Task](tasks)) { (thisTask, deps) => thisTask.dependsOn(deps: _*) }
def failure: Initialize[Task[Incomplete]] = i(_.failure)
def result: Initialize[Task[Result[S]]] = i(_.result)
@ -224,12 +224,12 @@ object Scoped {
def xtriggeredBy[T](tasks: Initialize[Task[T]]*): Initialize[Task[S]] = nonLocal(tasks, Def.triggeredBy)
def triggeredBy[T](tasks: Initialize[Task[T]]*): Initialize[Task[S]] = nonLocal(tasks, Def.triggeredBy)
def runBefore[T](tasks: Initialize[Task[T]]*): Initialize[Task[S]] = nonLocal(tasks, Def.runBefore)
private[this] def nonLocal[T](tasks: Seq[Initialize[Task[T]]], key: AttributeKey[Seq[Task[_]]]): Initialize[Task[S]] =
(Initialize.joinAny[Task, T](tasks), i) { (ts, i) => i.copy(info = i.info.set(key, ts)) }
private[this] def nonLocal(tasks: Seq[AnyInitTask], key: AttributeKey[Seq[Task[_]]]): Initialize[Task[S]] =
(Initialize.joinAny[Task](tasks), i) { (ts, i) => i.copy(info = i.info.set(key, ts)) }
}
final class RichInitializeInputTask[S](i: Initialize[InputTask[S]]) extends RichInitTaskBase[S, InputTask] {
protected def onTask[T](f: Task[S] => Task[T]): Initialize[InputTask[T]] = i(_ mapTask f)
def dependsOn(tasks: AnyInitTask*): Initialize[InputTask[S]] = (i, Initialize.joinAny[Task, Any](tasks)) { (thisTask, deps) => thisTask.mapTask(_.dependsOn(deps: _*)) }
def dependsOn(tasks: AnyInitTask*): Initialize[InputTask[S]] = (i, Initialize.joinAny[Task](tasks)) { (thisTask, deps) => thisTask.mapTask(_.dependsOn(deps: _*)) }
}
sealed abstract class RichInitTaskBase[S, R[_]] {
@ -259,7 +259,7 @@ object Scoped {
def mapFailure[T](f: Incomplete => T): Initialize[R[T]] = mapR(f compose failM)
}
type AnyInitTask = Initialize[Task[Any]] // forSome { type T }
type AnyInitTask = Initialize[Task[T]] forSome { type T }
implicit def richTaskSeq[T](in: Seq[Initialize[Task[T]]]): RichTaskSeq[T] = new RichTaskSeq(in)
final class RichTaskSeq[T](keys: Seq[Initialize[Task[T]]]) {
@ -268,7 +268,7 @@ object Scoped {
}
implicit def richAnyTaskSeq(in: Seq[AnyInitTask]): RichAnyTaskSeq = new RichAnyTaskSeq(in)
final class RichAnyTaskSeq(keys: Seq[AnyInitTask]) {
def dependOn: Initialize[Task[Unit]] = Initialize.joinAny[Task, Any](keys).apply(deps => nop.dependsOn(deps: _*))
def dependOn: Initialize[Task[Unit]] = Initialize.joinAny[Task](keys).apply(deps => nop.dependsOn(deps: _*))
}
implicit def richFileSetting(s: SettingKey[File]): RichFileSetting = new RichFileSetting(s)

View File

@ -71,7 +71,7 @@ object BuildUtil {
}
}
def baseImports: Seq[String] = "import sbt._, Keys._, dsl._" :: Nil
def baseImports: Seq[String] = "import sbt._, Keys._, dsl._, Import._" :: Nil
def getImports(unit: BuildUnit): Seq[String] = unit.plugins.detected.imports ++ unit.definitions.dslDefinitions.imports

View File

@ -25,6 +25,7 @@ import testing.{ Framework, Runner, AnnotatedFingerprint, SubclassFingerprint }
import sbt.librarymanagement._
import sbt.internal.librarymanagement._
import sbt.internal.librarymanagement.syntax._
import sbt.internal.util._
import sbt.util.Level

View File

@ -9,10 +9,10 @@ object Dependencies {
lazy val scala211 = "2.11.7"
// sbt modules
val utilVersion = "0.1.0-M3"
val utilVersion = "0.1.0-M5"
val ioVersion = "1.0.0-M3"
val incremenalcompilerVersion = "0.1.0-M1-168cb7a4877917e01917e35b9b82a62afe5c2a01"
val librarymanagementVersion = "0.1.0-M2"
val librarymanagementVersion = "0.1.0-M4"
lazy val sbtIO = "org.scala-sbt" %% "io" % ioVersion
lazy val utilCollection = "org.scala-sbt" %% "util-collection" % utilVersion
lazy val utilLogging = "org.scala-sbt" %% "util-logging" % utilVersion

View File

@ -0,0 +1,440 @@
package sbt
object Import {
// sbt.io
val AllPassFilter = sbt.io.AllPassFilter
val DirectoryFilter = sbt.io.DirectoryFilter
type ExactFilter = sbt.io.ExactFilter
val ExistsFileFilter = sbt.io.ExistsFileFilter
val FileFilter = sbt.io.FileFilter
type FileFilter = sbt.io.FileFilter
val GlobFilter = sbt.io.GlobFilter
val Hash = sbt.io.Hash
val HiddenFileFilter = sbt.io.HiddenFileFilter
val IO = sbt.io.IO
type Mapper = sbt.io.Mapper
val NameFilter = sbt.io.NameFilter
type NameFilter = sbt.io.NameFilter
val NothingFilter = sbt.io.NothingFilter
val Path = sbt.io.Path
type PathExtra = sbt.io.PathExtra
val PathFinder = sbt.io.PathFinder
type PathFinder = sbt.io.PathFinder
type PathLow = sbt.io.PathLow
type PatternFilter = sbt.io.PatternFilter
type RichFile = sbt.io.RichFile
type SimpleFileFilter = sbt.io.SimpleFileFilter
type SimpleFilter = sbt.io.SimpleFilter
type TestError = sbt.io.TestError
type TestException = sbt.io.TestException
type TestRuntimeException = sbt.io.TestRuntimeException
// sbt.util
type AbstractLogger = sbt.util.AbstractLogger
val ControlEvent = sbt.util.ControlEvent
type ControlEvent = sbt.util.ControlEvent
val Level = sbt.util.Level
type Log = sbt.util.Log
type LogEvent = sbt.util.LogEvent
val Logger = sbt.util.Logger
type Logger = sbt.util.Logger
type SetLevel = sbt.util.SetLevel
type SetSuccess = sbt.util.SetSuccess
type SetTrace = sbt.util.SetTrace
type Success = sbt.util.Success
type Trace = sbt.util.Trace
// sbt.internal.util
val AList = sbt.internal.util.AList
type AbstractRMap[K[_], V[_]] = sbt.internal.util.AbstractRMap[K, V]
type AlreadyHandledException = sbt.internal.util.AlreadyHandledException
val AttributeEntry = sbt.internal.util.AttributeEntry
type AttributeEntry[T] = sbt.internal.util.AttributeEntry[T]
val AttributeKey = sbt.internal.util.AttributeKey
type AttributeKey[T] = sbt.internal.util.AttributeKey[T]
val AttributeMap = sbt.internal.util.AttributeMap
type AttributeMap = sbt.internal.util.AttributeMap
val Attributed = sbt.internal.util.Attributed
type Attributed[D] = sbt.internal.util.Attributed[D]
type BasicCache[I, O] = sbt.internal.util.BasicCache[I, O]
type BasicCacheImplicits = sbt.internal.util.BasicCacheImplicits
type BasicLogger = sbt.internal.util.BasicLogger
type BufferedLogger = sbt.internal.util.BufferedLogger
val Cache = sbt.internal.util.Cache
type Cache[I, O] = sbt.internal.util.Cache[I, O]
val CacheIO = sbt.internal.util.CacheIO
type CacheImplicits = sbt.internal.util.CacheImplicits
val ChangeReport = sbt.internal.util.ChangeReport
type ChangeReport[T] = sbt.internal.util.ChangeReport[T]
type Changed[O] = sbt.internal.util.Changed[O]
val Classes = sbt.internal.util.Classes
val ConsoleLogger = sbt.internal.util.ConsoleLogger
type ConsoleLogger = sbt.internal.util.ConsoleLogger
val ConsoleOut = sbt.internal.util.ConsoleOut
type ConsoleOut = sbt.internal.util.ConsoleOut
val Dag = sbt.internal.util.Dag
type Dag[Node <: Dag[Node]] = sbt.internal.util.Dag[Node]
type DelegatingPMap[K[_], V[_]] = sbt.internal.util.DelegatingPMap[K, V]
val Difference = sbt.internal.util.Difference
type Difference = sbt.internal.util.Difference
type EmptyChangeReport[T] = sbt.internal.util.EmptyChangeReport[T]
val ErrorHandling = sbt.internal.util.ErrorHandling
type EvaluateSettings[Scope] = sbt.internal.util.EvaluateSettings[Scope]
val EvaluationState = sbt.internal.util.EvaluationState
val ExitHook = sbt.internal.util.ExitHook
type ExitHook = sbt.internal.util.ExitHook
val ExitHooks = sbt.internal.util.ExitHooks
type FeedbackProvidedException = sbt.internal.util.FeedbackProvidedException
val FileFunction = sbt.internal.util.FileFunction
val FileInfo = sbt.internal.util.FileInfo
type FileInfo = sbt.internal.util.FileInfo
type FilePosition = sbt.internal.util.FilePosition
val FilesInfo = sbt.internal.util.FilesInfo
type FilesInfo[F <: FileInfo] = sbt.internal.util.FilesInfo[F]
type FilterLogger = sbt.internal.util.FilterLogger
type Fn1[A, B] = sbt.internal.util.Fn1[A, B]
val FullLogger = sbt.internal.util.FullLogger
type FullLogger = sbt.internal.util.FullLogger
val FullReader = sbt.internal.util.FullReader
type FullReader = sbt.internal.util.FullReader
val GlobalLogBacking = sbt.internal.util.GlobalLogBacking
type GlobalLogBacking = sbt.internal.util.GlobalLogBacking
val GlobalLogging = sbt.internal.util.GlobalLogging
type GlobalLogging = sbt.internal.util.GlobalLogging
val HCons = sbt.internal.util.HCons
type HCons[H, T <: HList] = sbt.internal.util.HCons[H, T]
val HList = sbt.internal.util.HList
type HList = sbt.internal.util.HList
type HListCacheImplicits = sbt.internal.util.HListCacheImplicits
val HNil = sbt.internal.util.HNil
type HNil = sbt.internal.util.HNil
type HashFileInfo = sbt.internal.util.HashFileInfo
type HashModifiedFileInfo = sbt.internal.util.HashModifiedFileInfo
val IDSet = sbt.internal.util.IDSet
type IDSet[T] = sbt.internal.util.IDSet[T]
val IMap = sbt.internal.util.IMap
type IMap[K[_], V[_]] = sbt.internal.util.IMap[K, V]
type Init[Scope] = sbt.internal.util.Init[Scope]
val InputCache = sbt.internal.util.InputCache
type InputCache[I] = sbt.internal.util.InputCache[I]
type JLine = sbt.internal.util.JLine
val KCons = sbt.internal.util.KCons
type KCons[H, +T <: KList[M], +M[_]] = sbt.internal.util.KCons[H, T, M]
type KList[+M[_]] = sbt.internal.util.KList[M]
val KNil = sbt.internal.util.KNil
type KNil = sbt.internal.util.KNil
val LinePosition = sbt.internal.util.LinePosition
type LinePosition = sbt.internal.util.LinePosition
val LineRange = sbt.internal.util.LineRange
type LineRange = sbt.internal.util.LineRange
type LineReader = sbt.internal.util.LineReader
val LoggerWriter = sbt.internal.util.LoggerWriter
type LoggerWriter = sbt.internal.util.LoggerWriter
val MainLogging = sbt.internal.util.MainLogging
type MessageOnlyException = sbt.internal.util.MessageOnlyException
type ModifiedFileInfo = sbt.internal.util.ModifiedFileInfo
type MultiLogger = sbt.internal.util.MultiLogger
val MultiLoggerConfig = sbt.internal.util.MultiLoggerConfig
type MultiLoggerConfig = sbt.internal.util.MultiLoggerConfig
val NoPosition = sbt.internal.util.NoPosition
val PMap = sbt.internal.util.PMap
type PMap[K[_], V[_]] = sbt.internal.util.PMap[K, V]
val Param = sbt.internal.util.Param
type Param[A[_], B[_]] = sbt.internal.util.Param[A, B]
type PlainFileInfo = sbt.internal.util.PlainFileInfo
type RMap[K[_], V[_]] = sbt.internal.util.RMap[K, V]
val RangePosition = sbt.internal.util.RangePosition
type RangePosition = sbt.internal.util.RangePosition
val Relation = sbt.internal.util.Relation
type Relation[A, B] = sbt.internal.util.Relation[A, B]
type SBinaryFormats = sbt.internal.util.SBinaryFormats
val ScalaKeywords = sbt.internal.util.ScalaKeywords
type Settings[Scope] = sbt.internal.util.Settings[Scope]
type SharedAttributeKey[T] = sbt.internal.util.SharedAttributeKey[T]
val Show = sbt.internal.util.Show
type Show[T] = sbt.internal.util.Show[T]
val ShowLines = sbt.internal.util.ShowLines
type ShowLines[A] = sbt.internal.util.ShowLines[A]
val Signals = sbt.internal.util.Signals
val SimpleReader = sbt.internal.util.SimpleReader
type SimpleReader = sbt.internal.util.SimpleReader
type SourcePosition = sbt.internal.util.SourcePosition
val StackTrace = sbt.internal.util.StackTrace
type SuppressedTraceContext = sbt.internal.util.SuppressedTraceContext
type Timestamp = sbt.internal.util.Timestamp
val Tracked = sbt.internal.util.Tracked
type Tracked = sbt.internal.util.Tracked
type TranslatedException = sbt.internal.util.TranslatedException
type TranslatedIOException = sbt.internal.util.TranslatedIOException
val TypeFunctions = sbt.internal.util.TypeFunctions
type TypeFunctions = sbt.internal.util.TypeFunctions
val Types = sbt.internal.util.Types
type Types = sbt.internal.util.Types
type UnionImplicits = sbt.internal.util.UnionImplicits
type UnprintableException = sbt.internal.util.UnprintableException
val Util = sbt.internal.util.Util
val ~> = sbt.internal.util.~>
type ~>[-K[_], +V[_]] = sbt.internal.util.~>[K, V]
// sbt.internal.util.complete
object complete {
val Completion = sbt.internal.util.complete.Completion
type Completion = sbt.internal.util.complete.Completion
val Completions = sbt.internal.util.complete.Completions
type Completions = sbt.internal.util.complete.Completions
val DefaultParsers = sbt.internal.util.complete.DefaultParsers
type DisplayOnly = sbt.internal.util.complete.DisplayOnly
val EditDistance = sbt.internal.util.complete.EditDistance
type ExampleSource = sbt.internal.util.complete.ExampleSource
val FileExamples = sbt.internal.util.complete.FileExamples
type FileExamples = sbt.internal.util.complete.FileExamples
val Finite = sbt.internal.util.complete.Finite
type Finite = sbt.internal.util.complete.Finite
val FixedSetExamples = sbt.internal.util.complete.FixedSetExamples
type FixedSetExamples = sbt.internal.util.complete.FixedSetExamples
val History = sbt.internal.util.complete.History
val HistoryCommands = sbt.internal.util.complete.HistoryCommands
val Infinite = sbt.internal.util.complete.Infinite
val JLineCompletion = sbt.internal.util.complete.JLineCompletion
val Parser = sbt.internal.util.complete.Parser
type Parser[+T] = sbt.internal.util.complete.Parser[T]
type ParserMain = sbt.internal.util.complete.ParserMain
val Parsers = sbt.internal.util.complete.Parsers
type Parsers = sbt.internal.util.complete.Parsers
val ProcessError = sbt.internal.util.complete.ProcessError
type Suggestion = sbt.internal.util.complete.Suggestion
type Token = sbt.internal.util.complete.Token
val TokenCompletions = sbt.internal.util.complete.TokenCompletions
type TokenCompletions = sbt.internal.util.complete.TokenCompletions
val TypeString = sbt.internal.util.complete.TypeString
type TypeString = sbt.internal.util.complete.TypeString
val UpperBound = sbt.internal.util.complete.UpperBound
type UpperBound = sbt.internal.util.complete.UpperBound
}
// sbt.internal.util.appmacro
object appmacro {
import scala.reflect._
import macros._
type BuilderResult[C <: Context with Singleton] = sbt.internal.util.appmacro.BuilderResult[C]
val ContextUtil = sbt.internal.util.appmacro.ContextUtil
type ContextUtil[C <: Context] = sbt.internal.util.appmacro.ContextUtil[C]
type Convert = sbt.internal.util.appmacro.Convert
val Converted = sbt.internal.util.appmacro.Converted
type Converted[C <: Context with Singleton] = sbt.internal.util.appmacro.Converted[C]
val Instance = sbt.internal.util.appmacro.Instance
type Instance = sbt.internal.util.appmacro.Instance
val KListBuilder = sbt.internal.util.appmacro.KListBuilder
val MixedBuilder = sbt.internal.util.appmacro.MixedBuilder
type MonadInstance = sbt.internal.util.appmacro.MonadInstance
type TupleBuilder = sbt.internal.util.appmacro.TupleBuilder
val TupleNBuilder = sbt.internal.util.appmacro.TupleNBuilder
}
// sbt.internal.util.logic
object logic {
val Atom = sbt.internal.util.logic.Atom
type Atom = sbt.internal.util.logic.Atom
val Clause = sbt.internal.util.logic.Clause
type Clause = sbt.internal.util.logic.Clause
val Clauses = sbt.internal.util.logic.Clauses
type Clauses = sbt.internal.util.logic.Clauses
val Formula = sbt.internal.util.logic.Formula
type Formula = sbt.internal.util.logic.Formula
type Literal = sbt.internal.util.logic.Literal
val Logic = sbt.internal.util.logic.Logic
val Negated = sbt.internal.util.logic.Negated
type Negated = sbt.internal.util.logic.Negated
}
// sbt.librarymanagement
val Artifact = sbt.librarymanagement.Artifact
type Artifact = sbt.librarymanagement.Artifact
val Caller = sbt.librarymanagement.Caller
type Caller = sbt.librarymanagement.Caller
val ChainedResolver = sbt.librarymanagement.ChainedResolver
type ChainedResolver = sbt.librarymanagement.ChainedResolver
val CircularDependencyLevel = sbt.librarymanagement.CircularDependencyLevel
type CircularDependencyLevel = sbt.librarymanagement.CircularDependencyLevel
val Configuration = sbt.librarymanagement.Configuration
type Configuration = sbt.librarymanagement.Configuration
val ConfigurationReport = sbt.librarymanagement.ConfigurationReport
type ConfigurationReport = sbt.librarymanagement.ConfigurationReport
val Configurations = sbt.librarymanagement.Configurations
val ConflictManager = sbt.librarymanagement.ConflictManager
type ConflictManager = sbt.librarymanagement.ConflictManager
val ConflictWarning = sbt.librarymanagement.ConflictWarning
type ConflictWarning = sbt.librarymanagement.ConflictWarning
val Credentials = sbt.librarymanagement.Credentials
type Credentials = sbt.librarymanagement.Credentials
val CrossVersion = sbt.librarymanagement.CrossVersion
type CrossVersion = sbt.librarymanagement.CrossVersion
val DefaultMavenRepository = sbt.librarymanagement.DefaultMavenRepository
val Developer = sbt.librarymanagement.Developer
type Developer = sbt.librarymanagement.Developer
type DirectCredentials = sbt.librarymanagement.DirectCredentials
val EvictionPair = sbt.librarymanagement.EvictionPair
type EvictionPair = sbt.librarymanagement.EvictionPair
val EvictionWarning = sbt.librarymanagement.EvictionWarning
type EvictionWarning = sbt.librarymanagement.EvictionWarning
val EvictionWarningOptions = sbt.librarymanagement.EvictionWarningOptions
type EvictionWarningOptions = sbt.librarymanagement.EvictionWarningOptions
val ExclusionRule = sbt.librarymanagement.ExclusionRule
type ExclusionRule = sbt.librarymanagement.ExclusionRule
type FileCredentials = sbt.librarymanagement.FileCredentials
val FileRepository = sbt.librarymanagement.FileRepository
type FileRepository = sbt.librarymanagement.FileRepository
val IvyScala = sbt.librarymanagement.IvyScala
type IvyScala = sbt.librarymanagement.IvyScala
val JCenterRepository = sbt.librarymanagement.JCenterRepository
val JavaNet2Repository = sbt.librarymanagement.JavaNet2Repository
val MavenCache = sbt.librarymanagement.MavenCache
type MavenCache = sbt.librarymanagement.MavenCache
val MavenRepository = sbt.librarymanagement.MavenRepository
type MavenRepository = sbt.librarymanagement.MavenRepository
val ModuleConfiguration = sbt.librarymanagement.ModuleConfiguration
type ModuleConfiguration = sbt.librarymanagement.ModuleConfiguration
val ModuleID = sbt.librarymanagement.ModuleID
type ModuleID = sbt.librarymanagement.ModuleID
val ModuleInfo = sbt.librarymanagement.ModuleInfo
type ModuleInfo = sbt.librarymanagement.ModuleInfo
val ModuleReport = sbt.librarymanagement.ModuleReport
type ModuleReport = sbt.librarymanagement.ModuleReport
val OrganizationArtifactReport = sbt.librarymanagement.OrganizationArtifactReport
type OrganizationArtifactReport = sbt.librarymanagement.OrganizationArtifactReport
val Patterns = sbt.librarymanagement.Patterns
type Patterns = sbt.librarymanagement.Patterns
type PatternsBasedRepository = sbt.librarymanagement.PatternsBasedRepository
type RawRepository = sbt.librarymanagement.RawRepository
val RepositoryHelpers = sbt.librarymanagement.RepositoryHelpers
val Resolver = sbt.librarymanagement.Resolver
type Resolver = sbt.librarymanagement.Resolver
val SbtArtifacts = sbt.librarymanagement.SbtArtifacts
val ScalaArtifacts = sbt.librarymanagement.ScalaArtifacts
val ScalaVersion = sbt.librarymanagement.ScalaVersion
type ScalaVersion = sbt.librarymanagement.ScalaVersion
val ScmInfo = sbt.librarymanagement.ScmInfo
type ScmInfo = sbt.librarymanagement.ScmInfo
val SftpRepository = sbt.librarymanagement.SftpRepository
type SftpRepository = sbt.librarymanagement.SftpRepository
type SshBasedRepository = sbt.librarymanagement.SshBasedRepository
val SshRepository = sbt.librarymanagement.SshRepository
type SshRepository = sbt.librarymanagement.SshRepository
val URLRepository = sbt.librarymanagement.URLRepository
type URLRepository = sbt.librarymanagement.URLRepository
val UpdateOptions = sbt.librarymanagement.UpdateOptions
type UpdateOptions = sbt.librarymanagement.UpdateOptions
val UpdateReport = sbt.librarymanagement.UpdateReport
type UpdateReport = sbt.librarymanagement.UpdateReport
val UpdateStats = sbt.librarymanagement.UpdateStats
type UpdateStats = sbt.librarymanagement.UpdateStats
val VersionNumber = sbt.librarymanagement.VersionNumber
type VersionNumber = sbt.librarymanagement.VersionNumber
type VersionNumberCompatibility = sbt.librarymanagement.VersionNumberCompatibility
// sbt.internal.librarymanagement
type ArtifactFilter = sbt.internal.librarymanagement.ArtifactFilter
val ComponentManager = sbt.internal.librarymanagement.ComponentManager
type ComponentManager = sbt.internal.librarymanagement.ComponentManager
type ConfigurationFilter = sbt.internal.librarymanagement.ConfigurationFilter
val ConfigurationReportLite = sbt.internal.librarymanagement.ConfigurationReportLite
type ConfigurationReportLite = sbt.internal.librarymanagement.ConfigurationReportLite
val ConvertResolver = sbt.internal.librarymanagement.ConvertResolver
val CustomPomParser = sbt.internal.librarymanagement.CustomPomParser
type CustomPomParser = sbt.internal.librarymanagement.CustomPomParser
val CustomXmlParser = sbt.internal.librarymanagement.CustomXmlParser
type DeliverConfiguration = sbt.internal.librarymanagement.DeliverConfiguration
val DependencyFilter = sbt.internal.librarymanagement.DependencyFilter
type DependencyFilter = sbt.internal.librarymanagement.DependencyFilter
type DependencyFilterExtra = sbt.internal.librarymanagement.DependencyFilterExtra
val ExternalIvyConfiguration = sbt.internal.librarymanagement.ExternalIvyConfiguration
type ExternalIvyConfiguration = sbt.internal.librarymanagement.ExternalIvyConfiguration
val GetClassifiersConfiguration = sbt.internal.librarymanagement.GetClassifiersConfiguration
type GetClassifiersConfiguration = sbt.internal.librarymanagement.GetClassifiersConfiguration
val GetClassifiersModule = sbt.internal.librarymanagement.GetClassifiersModule
type GetClassifiersModule = sbt.internal.librarymanagement.GetClassifiersModule
val IfMissing = sbt.internal.librarymanagement.IfMissing
type IfMissing = sbt.internal.librarymanagement.IfMissing
type ModuleSettings = sbt.internal.librarymanagement.ModuleSettings
val InlineConfiguration = sbt.internal.librarymanagement.InlineConfiguration
type InlineConfiguration = sbt.internal.librarymanagement.InlineConfiguration
val InlineConfigurationWithExcludes = sbt.internal.librarymanagement.InlineConfigurationWithExcludes
type InlineConfigurationWithExcludes = sbt.internal.librarymanagement.InlineConfigurationWithExcludes
type InlineIvyConfiguration = sbt.internal.librarymanagement.InlineIvyConfiguration
type InvalidComponent = sbt.internal.librarymanagement.InvalidComponent
val IvyActions = sbt.internal.librarymanagement.IvyActions
type IvyCache = sbt.internal.librarymanagement.IvyCache
val IvyConfiguration = sbt.internal.librarymanagement.IvyConfiguration
type IvyConfiguration = sbt.internal.librarymanagement.IvyConfiguration
val IvyFileConfiguration = sbt.internal.librarymanagement.IvyFileConfiguration
type IvyFileConfiguration = sbt.internal.librarymanagement.IvyFileConfiguration
type IvyPaths = sbt.internal.librarymanagement.IvyPaths
val IvyRetrieve = sbt.internal.librarymanagement.IvyRetrieve
val IvySbt = sbt.internal.librarymanagement.IvySbt
type IvySbt = sbt.internal.librarymanagement.IvySbt
val IvyUtil = sbt.internal.librarymanagement.IvyUtil
val JsonUtil = sbt.internal.librarymanagement.JsonUtil
val LogicalClock = sbt.internal.librarymanagement.LogicalClock
type LogicalClock = sbt.internal.librarymanagement.LogicalClock
val MakePom = sbt.internal.librarymanagement.MakePom
type MakePom = sbt.internal.librarymanagement.MakePom
val MakePomConfiguration = sbt.internal.librarymanagement.MakePomConfiguration
type MakePomConfiguration = sbt.internal.librarymanagement.MakePomConfiguration
type ModuleFilter = sbt.internal.librarymanagement.ModuleFilter
type NotInCache = sbt.internal.librarymanagement.NotInCache
val PomConfiguration = sbt.internal.librarymanagement.PomConfiguration
type PomConfiguration = sbt.internal.librarymanagement.PomConfiguration
val ProjectResolver = sbt.internal.librarymanagement.ProjectResolver
type ProjectResolver = sbt.internal.librarymanagement.ProjectResolver
type PublishConfiguration = sbt.internal.librarymanagement.PublishConfiguration
val ResolutionCache = sbt.internal.librarymanagement.ResolutionCache
type ResolutionCache = sbt.internal.librarymanagement.ResolutionCache
type ResolveException = sbt.internal.librarymanagement.ResolveException
type ResolverAdapter = sbt.internal.librarymanagement.ResolverAdapter
type RetrieveConfiguration = sbt.internal.librarymanagement.RetrieveConfiguration
val SbtExclusionRule = sbt.internal.librarymanagement.SbtExclusionRule
type SbtExclusionRule = sbt.internal.librarymanagement.SbtExclusionRule
val StringUtilities = sbt.internal.librarymanagement.StringUtilities
val UnresolvedWarning = sbt.internal.librarymanagement.UnresolvedWarning
type UnresolvedWarning = sbt.internal.librarymanagement.UnresolvedWarning
val UnresolvedWarningConfiguration = sbt.internal.librarymanagement.UnresolvedWarningConfiguration
type UnresolvedWarningConfiguration = sbt.internal.librarymanagement.UnresolvedWarningConfiguration
type UpdateConfiguration = sbt.internal.librarymanagement.UpdateConfiguration
val UpdateLogging = sbt.internal.librarymanagement.UpdateLogging
val UpdateReportLite = sbt.internal.librarymanagement.UpdateReportLite
type UpdateReportLite = sbt.internal.librarymanagement.UpdateReportLite
// sbt.internal.inc.classpath
object classpath {
type CachedClassLoader = sbt.internal.inc.classpath.CachedClassLoader
type ClassFilter = sbt.internal.inc.classpath.ClassFilter
type ClassLoaderCache = sbt.internal.inc.classpath.ClassLoaderCache
type ClasspathFilter = sbt.internal.inc.classpath.ClasspathFilter
val ClasspathUtilities = sbt.internal.inc.classpath.ClasspathUtilities
type DifferentLoaders = sbt.internal.inc.classpath.DifferentLoaders
type DualEnumeration[T] = sbt.internal.inc.classpath.DualEnumeration[T]
type DualLoader = sbt.internal.inc.classpath.DualLoader
type ExcludePackagesFilter = sbt.internal.inc.classpath.ExcludePackagesFilter
type FilteredLoader = sbt.internal.inc.classpath.FilteredLoader
type FixedResources = sbt.internal.inc.classpath.FixedResources
type IncludePackagesFilter = sbt.internal.inc.classpath.IncludePackagesFilter
type LoaderBase = sbt.internal.inc.classpath.LoaderBase
type NativeCopyConfig = sbt.internal.inc.classpath.NativeCopyConfig
type NativeCopyLoader = sbt.internal.inc.classpath.NativeCopyLoader
type NullLoader = sbt.internal.inc.classpath.NullLoader
type PackageFilter = sbt.internal.inc.classpath.PackageFilter
type RawResources = sbt.internal.inc.classpath.RawResources
val RawURL = sbt.internal.inc.classpath.RawURL
type SelfFirstLoader = sbt.internal.inc.classpath.SelfFirstLoader
}
val IncOptions = sbt.internal.inc.IncOptions
type Analysis = sbt.internal.inc.Analysis
val Analysis = sbt.internal.inc.Analysis
val ClassfileManager = sbt.internal.inc.ClassfileManager
type ScalaInstance = sbt.internal.inc.ScalaInstance
val ScalaInstance = sbt.internal.inc.ScalaInstance
}

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
import Project.Initialize
trait Marker
@ -14,4 +15,4 @@ trait Marker
else
IO touch toMark
}
}
}

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
object SingleBuild extends Build with Marker
{

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import Def.Initialize
import complete.{DefaultParsers, Parser}
@ -11,4 +12,4 @@ object A {
val x3: Initialize[Int] = Def.setting { 3 }
val y3 = Def.setting { x3.value }
}
}

View File

@ -1,8 +1,9 @@
import sbt._
import Import._
import Def.Initialize
import complete.{DefaultParsers, Parser}
object A {
val x1: Initialize[Parser[Int]] = Def.setting { DefaultParsers.success(3) }
val y1 = Def.task { x1.parsed }
}
}

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
// tests that errors are properly propagated for dependsOn, map, and flatMap
object B extends Build

View File

@ -19,7 +19,7 @@ configClassCountFile := (target.value / "config-count")
numConfigClasses := {
val cdir = (baseDirectory in ThisBuild).value / "project/target/config-classes"
(cdir.*** --- cdir).get.length
(cdir.allPaths --- cdir).get.length
}
saveNumConfigClasses := {
@ -46,4 +46,4 @@ checkNumConfigClasses := {
val previous = previousConfigCount.value
val current = numConfigClasses.value
assert(previous == current, s"Failed to delete extra configuration classes. Expected: $previous, Found: $current")
}
}

View File

@ -0,0 +1,20 @@
lazy val intTask = taskKey[Int]("int")
lazy val root = (project in file(".")).
dependsOn(b, c).
settings(
intTask in Compile := {
// a sequence of tasks could be joined together
Seq(b, c).map(p => intTask in (p, Compile)).join.map( as => (1 /: as)(_ + _) ).value
}
)
lazy val b = (project in file("b")).
settings(
intTask in Compile := 1
)
lazy val c = (project in file("c")).
settings{
intTask in Compile := 2
}

View File

@ -1,11 +0,0 @@
import sbt._
import Keys._
object Build extends Build
{
lazy val root = Project("root", file(".")) dependsOn(b,c) settings(
compile in Compile <<= Seq(b, c).map(p => compile in (p, Compile)).join.map( as => (inc.Analysis.Empty /: as)(_ ++ _) )
)
lazy val b = Project("b", file("b"))
lazy val c = Project("c", file("c"))
}

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
object TestBuild extends Build
{

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
object Ext extends Build
{

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
object TestBuild extends Build
{

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object B extends Build
{

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
import complete.Parser
import complete.DefaultParsers._
import sbinary.DefaultProtocol._
@ -47,4 +48,4 @@ object MyBuild extends Build
def dummyTask = (key: Any) => maxErrors map { _ => () }
def str(o: Option[Int]) = o match { case None => "blue"; case Some(i) => i.toString }
}
}

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object TestBuild extends Build
{

View File

@ -28,7 +28,7 @@ myTask in (sub, Compile) := "sub compile"
testTask("testRunTaskSubCompile", "sub compile", myTask in (sub, Compile))
def argFunction(f: String => String) = Def.inputTask {
import sbt.complete.Parsers._
import complete.Parsers._
f((OptSpace ~> StringBasic).parsed)
}

View File

@ -1,8 +1,8 @@
logLevel := Level.Debug
incOptions ~= { _.copy(apiDebug = true) }
incOptions ~= { _.withApiDebug(true) }
TaskKey[Unit]("show-apis") <<= (compile in Compile, scalaSource in Compile, javaSource in Compile) map { (a: sbt.inc.Analysis, scalaSrc: java.io.File, javaSrc: java.io.File) =>
TaskKey[Unit]("show-apis") <<= (compile in Compile, scalaSource in Compile, javaSource in Compile) map { (a: sbt.internal.inc.Analysis, scalaSrc: java.io.File, javaSrc: java.io.File) =>
val aApi = a.apis.internalAPI(scalaSrc / "A.scala").api
val jApi = a.apis.internalAPI(javaSrc / "test/J.java").api
import xsbt.api.DefaultShowAPI

View File

@ -1,6 +1,6 @@
// checks number of compilation iterations performed since last `clean` run
InputKey[Unit]("check-number-of-compiler-iterations") <<= inputTask { (argTask: TaskKey[Seq[String]]) =>
(argTask, compile in Compile) map { (args: Seq[String], a: sbt.inc.Analysis) =>
(argTask, compile in Compile) map { (args: Seq[String], a: sbt.internal.inc.Analysis) =>
assert(args.size == 1)
val expectedIterationsNumber = args(0).toInt
val allCompilationsSize = a.compilations.allCompilations.size

View File

@ -1 +1 @@
incOptions := sbt.inc.IncOptions.Default
incOptions := IncOptions.Default

View File

@ -1,5 +1,5 @@
TaskKey[Unit]("verify-binary-deps") <<= (compile in Compile, classDirectory in Compile, baseDirectory) map {
(a: sbt.inc.Analysis, classDir: java.io.File, base: java.io.File) =>
(a: sbt.internal.inc.Analysis, classDir: java.io.File, base: java.io.File) =>
val nestedPkgClass = classDir / "test/nested.class"
val fooSrc = base / "src/main/scala/test/nested/Foo.scala"
assert(!a.relations.binaryDeps(fooSrc).contains(nestedPkgClass), a.relations.toString)

View File

@ -2,7 +2,7 @@ logLevel := Level.Debug
// dumps analysis into target/analysis-dump.txt file
InputKey[Unit]("check-number-of-compiler-iterations") <<= inputTask { (argTask: TaskKey[Seq[String]]) =>
(argTask, compile in Compile) map { (args: Seq[String], a: sbt.inc.Analysis) =>
(argTask, compile in Compile) map { (args: Seq[String], a: Analysis) =>
assert(args.size == 1)
val expectedIterationsNumber = args(0).toInt
assert(a.compilations.allCompilations.size == expectedIterationsNumber, "a.compilations.allCompilations.size = %d (expected %d)".format(a.compilations.allCompilations.size, expectedIterationsNumber))

View File

@ -1,5 +1,5 @@
InputKey[Unit]("check-number-of-compiler-iterations") <<= inputTask { (argTask: TaskKey[Seq[String]]) =>
(argTask, compile in Compile) map { (args: Seq[String], a: sbt.inc.Analysis) =>
(argTask, compile in Compile) map { (args: Seq[String], a: Analysis) =>
assert(args.size == 1)
val expectedIterationsNumber = args(0).toInt
assert(a.compilations.allCompilations.size == expectedIterationsNumber, "a.compilations.allCompilations.size = %d (expected %d)".format(a.compilations.allCompilations.size, expectedIterationsNumber))

View File

@ -5,7 +5,7 @@ scalaVersion := "2.10.4"
crossScalaVersions := List("2.10.4", "2.11.0")
incOptions := incOptions.value.withNewClassfileManager(
sbt.inc.ClassfileManager.transactional(
ClassfileManager.transactional(
crossTarget.value / "classes.bak",
(streams in (Compile, compile)).value.log
)

View File

@ -0,0 +1,41 @@
import sbt.internal.inc.classpath.ClasspathUtilities
lazy val checkFull = TaskKey[Unit]("check-full")
lazy val check = TaskKey[Unit]("check")
lazy val root = (project in file(".")).
settings(
ivyPaths <<= (baseDirectory, target)( (dir, t) => new IvyPaths(dir, Some(t / "ivy-cache"))),
publishTo := Some(Resolver.file("Test Publish Repo", file("test-repo"))),
resolvers <+= baseDirectory { base => "Test Repo" at (base / "test-repo").toURI.toString },
moduleName := artifactID,
projectID <<= baseDirectory { base => (if(base / "retrieve" exists) retrieveID else publishedID) },
artifact in (Compile, packageBin) := mainArtifact,
libraryDependencies <<= (libraryDependencies, baseDirectory) { (deps, base) => deps ++ (if(base / "retrieve" exists) publishedID :: Nil else Nil) },
// needed to add a jar with a different type to the managed classpath
unmanagedClasspath in Compile <+= scalaInstance.map(_.libraryJar),
classpathTypes := Set(tpe),
check <<= checkTask(dependencyClasspath),
checkFull <<= checkTask(fullClasspath)
)
// define strings for defining the artifact
def artifactID = "test"
def ext = "test2"
def classifier = "test3"
def tpe = "test1"
def vers = "1.1"
def org = "test"
def mainArtifact = Artifact(artifactID, tpe, ext, classifier)
// define the IDs to use for publishing and retrieving
def publishedID = org % artifactID % vers artifacts(mainArtifact)
def retrieveID = org % "test-retrieve" % "2.0"
// check that the test class is on the compile classpath, either because it was compiled or because it was properly retrieved
def checkTask(classpath: TaskKey[Classpath]) = (classpath in Compile, scalaInstance) map { (cp, si) =>
val loader = ClasspathUtilities.toLoader(cp.files, si.loader)
try { Class.forName("test.Test", false, loader); () }
catch { case _: ClassNotFoundException | _: NoClassDefFoundError => sys.error("Dependency not retrieved properly") }
}

View File

@ -1,44 +0,0 @@
import sbt._
import Keys._
object ArtifactTest extends Build
{
lazy val root = Project("root", file(".")) settings(
ivyPaths <<= (baseDirectory, target)( (dir, t) => new IvyPaths(dir, Some(t / "ivy-cache"))),
publishTo := Some(Resolver.file("Test Publish Repo", file("test-repo"))),
resolvers <+= baseDirectory { base => "Test Repo" at (base / "test-repo").toURI.toString },
moduleName := artifactID,
projectID <<= baseDirectory { base => (if(base / "retrieve" exists) retrieveID else publishedID) },
artifact in (Compile, packageBin) := mainArtifact,
libraryDependencies <<= (libraryDependencies, baseDirectory) { (deps, base) => deps ++ (if(base / "retrieve" exists) publishedID :: Nil else Nil) },
// needed to add a jar with a different type to the managed classpath
unmanagedClasspath in Compile <+= scalaInstance.map(_.libraryJar),
classpathTypes := Set(tpe),
check <<= checkTask(dependencyClasspath),
checkFull <<= checkTask(fullClasspath)
)
lazy val checkFull = TaskKey[Unit]("check-full")
lazy val check = TaskKey[Unit]("check")
// define strings for defining the artifact
def artifactID = "test"
def ext = "test2"
def classifier = "test3"
def tpe = "test1"
def vers = "1.1"
def org = "test"
def mainArtifact = Artifact(artifactID, tpe, ext, classifier)
// define the IDs to use for publishing and retrieving
def publishedID = org % artifactID % vers artifacts(mainArtifact)
def retrieveID = org % "test-retrieve" % "2.0"
// check that the test class is on the compile classpath, either because it was compiled or because it was properly retrieved
def checkTask(classpath: TaskKey[Classpath]) = (classpath in Compile, scalaInstance) map { (cp, si) =>
val loader = sbt.classpath.ClasspathUtilities.toLoader(cp.files, si.loader)
try { Class.forName("test.Test", false, loader); () }
catch { case _: ClassNotFoundException | _: NoClassDefFoundError => sys.error("Dependency not retrieved properly") }
}
}

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object B extends Build {

View File

@ -13,7 +13,7 @@ lazy val root = (project in file(".")).
dependencyOverrides in ThisBuild += "com.github.nscala-time" %% "nscala-time" % "1.0.0",
libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "1.0.0",
check := {
import sbt.Cache._, sbt.CacheIvy.updateIC
import Cache._, CacheIvy.updateIC
implicit val updateCache = updateIC
type In = IvyConfiguration :+: ModuleSettings :+: UpdateConfiguration :+: HNil
val s = (streams in update).value

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object B extends Build
{

View File

@ -0,0 +1,21 @@
lazy val scalaOverride = taskKey[Unit]("Check that the proper version of Scala is on the classpath.")
lazy val root = (project in file(".")).
settings(
libraryDependencies <++= baseDirectory(dependencies),
scalaVersion := "2.9.2",
autoScalaLibrary <<= baseDirectory(base => !(base / "noscala").exists ),
scalaOverride <<= check("scala.App")
)
def check(className: String): Def.Initialize[Task[Unit]] = fullClasspath in Compile map { cp =>
val existing = cp.files.filter(_.getName contains "scala-library")
println("Full classpath: " + cp.mkString("\n\t", "\n\t", ""))
println("scala-library.jar: " + existing.mkString("\n\t", "\n\t", ""))
val loader = classpath.ClasspathUtilities.toLoader(existing)
Class.forName(className, false, loader)
}
def dependencies(base: File) =
if( ( base / "stm").exists ) ("org.scala-tools" % "scala-stm_2.8.2" % "0.6") :: Nil
else Nil

View File

@ -1,27 +0,0 @@
import sbt._
import Keys._
object ExcludeScala extends Build
{
lazy val root = Project("root", file(".")) settings(
libraryDependencies <++= baseDirectory(dependencies),
scalaVersion := "2.9.2",
autoScalaLibrary <<= baseDirectory(base => !(base / "noscala").exists ),
scalaOverride <<= check("scala.App")
)
def check(className: String): Def.Initialize[Task[Unit]] = fullClasspath in Compile map { cp =>
val existing = cp.files.filter(_.getName contains "scala-library")
println("Full classpath: " + cp.mkString("\n\t", "\n\t", ""))
println("scala-library.jar: " + existing.mkString("\n\t", "\n\t", ""))
val loader = classpath.ClasspathUtilities.toLoader(existing)
Class.forName(className, false, loader)
}
lazy val scalaOverride = taskKey[Unit]("Check that the proper version of Scala is on the classpath.")
def dependencies(base: File) =
if( ( base / "stm").exists )
("org.scala-tools" % "scala-stm_2.8.2" % "0.6") :: Nil
else
Nil
}

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import Keys._
object TestProject extends Build

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import Keys._
object TestProject extends Build

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import Keys._
import scala.xml._
@ -39,4 +40,4 @@ object InfoTest extends Build
if( deliveredWithCustom(d) ) sys.error("Expected empty 'info' tag, got: \n" + (d \ "info")) else ()
}
def deliveredWithCustom(d: NodeSeq) = (d \ "info" \ "license").nonEmpty && (d \ "info" \ "description").nonEmpty
}
}

View File

@ -1,3 +1,5 @@
import sbt.internal.librarymanagement.syntax._
libraryDependencies += "org.scalacheck" % "scalacheck" % "1.5"
ivyPaths <<= baseDirectory( dir => new IvyPaths(dir, Some(dir / "ivy-home")))

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object P extends Build
{

View File

@ -1,3 +1,5 @@
import sbt.internal.librarymanagement.syntax._
seq(externalIvySettings(), externalIvyFile())
TaskKey[Unit]("check") := {

View File

@ -1,3 +1,5 @@
import sbt.internal.librarymanagement.syntax._
externalIvySettings()
libraryDependencies += "org.scalacheck" % "scalacheck" % "1.5"

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import Keys._
object B extends Build
@ -24,9 +25,9 @@ object B extends Build
lazy val baseSettings = Seq(
autoScalaLibrary := false,
ivyScala := None,
unmanagedJars in Compile <++= scalaInstance map (_.jars),
unmanagedJars in Compile <++= scalaInstance map (_.allJars.toSeq),
publishArtifact in packageSrc := false,
publishArtifact in packageDoc := false,
publishMavenStyle := false
)
}
}

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object B extends Build
{
@ -13,6 +14,6 @@ object B extends Build
)
lazy val baseSettings = Seq(
autoScalaLibrary := false,
unmanagedJars in Compile <++= scalaInstance map (_.jars)
unmanagedJars in Compile <++= scalaInstance map (_.allJars.toSeq)
)
}

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object Build extends Build
{

View File

@ -1,5 +0,0 @@
ivyPaths <<= baseDirectory( dir => new IvyPaths(dir, Some(dir / "ivy-home")))
resolvers += JavaNet1Repository
libraryDependencies += "javax.ejb" % "ejb-api" % "3.0"

View File

@ -1 +0,0 @@
> update

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object build extends Build {
override def settings = super.settings ++ Seq(

View File

@ -1,4 +1,5 @@
import sbt.{Node =>_,_}
import Import._
import Keys._
import scala.xml._
@ -73,4 +74,4 @@ object MakePomTest extends Build
if(base.endsWith("/")) base else (base + "/")
}
def normalize(repo: MavenRepository): MavenRepository = new MavenRepository(repo.name, normalize(repo.root))
}
}

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
object ParentTest extends Build
{

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import Keys._
import complete.DefaultParsers._
@ -34,4 +35,4 @@ object PomRepoTest extends Build
extracted.find { e => !expected.exists(_.accept(e.root)) } map { "Repository should not be exported: " + _ } orElse
(expected.find { e => !extracted.exists(r => e.accept(r.root)) } map { "Repository should be exported: " + _ } ) foreach error
}
}
}

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import Keys._
import complete._
import complete.DefaultParsers._
@ -34,4 +35,4 @@ object MyBuild extends Build
()
}
def seqStr(s: Seq[_]) = s.mkString("\n\t", "\n\t", "\n")
}
}

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object PomTest extends Build
{

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object PomTest extends Build
{

View File

@ -1,5 +1,7 @@
import sbt._
import Keys._
import Import._
object P extends Build
{
override def settings = super.settings ++ Seq(

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import Keys._
import complete.DefaultParsers._
@ -31,4 +32,4 @@ object TestProject extends Build
else
servletAPI.foreach(s => sys.error(s + " incorrectly included in " + label + "."))
}
}
}

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import Keys._
object MultiPublishTest extends Build

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import Keys._
object MultiPublishTest extends Build
@ -18,4 +19,4 @@ object MultiPublishTest extends Build
def interProject =
projectDependencies <<= (publishMavenStyle, publishMavenStyle in sub, projectDependencies) map { (style, subStyle, pd) => if(style == subStyle) pd else Nil }
}
}

View File

@ -2,6 +2,6 @@ val makeHome = taskKey[Unit]("Populates the 'home/lib' directory with Scala jars
makeHome := {
val lib = baseDirectory.value / "home" / "lib"
for(jar <- scalaInstance.value.jars)
for(jar <- scalaInstance.value.allJars)
IO.copyFile(jar, lib / jar.getName)
}

View File

@ -1,3 +1,5 @@
import sbt.internal.librarymanagement.syntax._
scalaHome := Some(baseDirectory.value / "home")
val checkUpdate = taskKey[Unit]("Ensures that resolved Scala artifacts are replaced with ones from the configured Scala home directory")

View File

@ -1,5 +1,7 @@
import sbt._
import Import._
import Keys._
import sbt.internal.librarymanagement.syntax._
object Test extends Build
{
@ -28,4 +30,4 @@ object Test extends Build
val srcs = getSources(report)
if(srcs.nonEmpty) sys.error("Sources retrieved:\n\t" + srcs.mkString("\n\t")) else ()
}
}
}

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import Keys._
import classpath.ClasspathUtilities
@ -24,4 +25,4 @@ object TestProject extends Build
case _: ClassNotFoundException => sys.error("Dependency not downloaded.")
}
}
}
}

View File

@ -1,14 +1,17 @@
# test that a pure Java project can be compiled without a dependency on Scala library
> compile
# It can use the Scala REPL for the version of Scala that sbt runs with
> console
# A different version of Scala needs to be resolved, but we don't have any resolvers configured
> ++2.8.2
-> console
# With an explicit scalaInstance, the Scala tools configuration won't be resolved
$ copy-file changes/explicitInstance.sbt explicitInstance.sbt
> reload
> console
## Scala tools are resolved using ivy, so did we lose the ability to use the same Scala instance that sbt runs with?
##
## It can use the Scala REPL for the version of Scala that sbt runs with
#> console
##
## A different version of Scala needs to be resolved, but we don't have any resolvers configured
#> ++2.8.2
#-> console
##
## With an explicit scalaInstance, the Scala tools configuration won't be resolved
#$ copy-file changes/explicitInstance.sbt explicitInstance.sbt
#> reload
#> console

View File

@ -1,5 +1,5 @@
{
import sbt.complete.DefaultParsers._
import complete.DefaultParsers._
val parser = token(Space ~> ( ("exists" ^^^ true) | ("absent" ^^^ false) ) )
InputKey[Unit]("check-output") := {
val shouldExist = parser.parsed
@ -11,4 +11,4 @@
else
()
}
}
}

View File

@ -44,4 +44,4 @@ object TopC extends AutoPlugin {
lazy val topLevelKeyTest = settingKey[String]("A top level setting declared in a plugin.")
}
}
}

View File

@ -1,6 +1,7 @@
package sbttest // you need package http://stackoverflow.com/questions/9822008/
import sbt._
import Import._
import sbt.Keys.{name, resolvedScoped, organization }
import java.util.concurrent.atomic.{AtomicInteger => AInt}

View File

@ -2,6 +2,7 @@
import Keys._
import AddSettings._
import Import._
object B extends Build
{

View File

@ -2,6 +2,7 @@ package sbttest // you need package http://stackoverflow.com/questions/9822008/
import sbt._
import Keys._
import Import._
object C extends AutoPlugin {
object autoImport {

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object B extends Build
{

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object EmptyLoaderBuild extends Build {
override def buildLoaders = BuildLoader.transform(_.unit) :: Nil

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object Build extends Build {

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
object B extends Build
{

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import complete.DefaultParsers._
import Keys._
import AddSettings._

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import complete.DefaultParsers._
import Keys._

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import Keys._
object B extends Build

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object B extends Build
{

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import Keys._
import Configurations.{Compile, Test}

View File

@ -1,4 +1,5 @@
import sbt._
import Import._
import sbt.Keys._
object MyBuild extends Build {

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object B extends Build {
lazy val project = Project(id = "project",

View File

@ -1,5 +1,6 @@
import sbt._
import Keys._
import Import._
object B extends Build
{

View File

@ -1,6 +1,7 @@
import sbt._
import Keys.name
import AddSettings._
import Import._
object TestBuild extends Build
{

View File

@ -1,5 +1,6 @@
import sbt._
import Keys.name
import Import._
object TestBuild extends MakeBuild
{

Some files were not shown because too many files have changed in this diff Show More