mirror of https://github.com/sbt/sbt.git
Reorganize directory structure
This commit is contained in:
parent
6a9ced8eb6
commit
ee272d780e
18
build.sbt
18
build.sbt
|
|
@ -109,7 +109,7 @@ lazy val testAgentProj = (project in file("testing") / "agent").
|
|||
)
|
||||
|
||||
// Basic task engine
|
||||
lazy val taskProj = (project in tasksPath).
|
||||
lazy val taskProj = (project in file("tasks")).
|
||||
settings(
|
||||
testedBaseSettings,
|
||||
name := "Tasks",
|
||||
|
|
@ -117,7 +117,7 @@ lazy val taskProj = (project in tasksPath).
|
|||
)
|
||||
|
||||
// Standard task system. This provides map, flatMap, join, and more on top of the basic task model.
|
||||
lazy val stdTaskProj = (project in tasksPath / "standard").
|
||||
lazy val stdTaskProj = (project in file("tasks-standard")).
|
||||
dependsOn (taskProj % "compile;test->test").
|
||||
settings(
|
||||
testedBaseSettings,
|
||||
|
|
@ -153,7 +153,7 @@ lazy val scriptedPluginProj = (project in scriptedPath / "plugin").
|
|||
)
|
||||
|
||||
// Implementation and support code for defining actions.
|
||||
lazy val actionsProj = (project in mainPath / "actions").
|
||||
lazy val actionsProj = (project in file("main-actions")).
|
||||
dependsOn(runProj, stdTaskProj, taskProj, testingProj).
|
||||
settings(
|
||||
testedBaseSettings,
|
||||
|
|
@ -164,7 +164,7 @@ lazy val actionsProj = (project in mainPath / "actions").
|
|||
)
|
||||
|
||||
// General command support and core commands not specific to a build system
|
||||
lazy val commandProj = (project in mainPath / "command").
|
||||
lazy val commandProj = (project in file("main-command")).
|
||||
settings(
|
||||
testedBaseSettings,
|
||||
name := "Command",
|
||||
|
|
@ -173,7 +173,7 @@ lazy val commandProj = (project in mainPath / "command").
|
|||
)
|
||||
|
||||
// Fixes scope=Scope for Setting (core defined in collectionProj) to define the settings system used in build definitions
|
||||
lazy val mainSettingsProj = (project in mainPath / "settings").
|
||||
lazy val mainSettingsProj = (project in file("main-settings")).
|
||||
dependsOn(commandProj, stdTaskProj).
|
||||
settings(
|
||||
testedBaseSettings,
|
||||
|
|
@ -183,7 +183,7 @@ lazy val mainSettingsProj = (project in mainPath / "settings").
|
|||
)
|
||||
|
||||
// The main integration project for sbt. It brings all of the Projsystems together, configures them, and provides for overriding conventions.
|
||||
lazy val mainProj = (project in mainPath).
|
||||
lazy val mainProj = (project in file("main")).
|
||||
dependsOn(actionsProj, mainSettingsProj, runProj, commandProj).
|
||||
settings(
|
||||
testedBaseSettings,
|
||||
|
|
@ -195,7 +195,7 @@ lazy val mainProj = (project in mainPath).
|
|||
// Strictly for bringing implicits and aliases from subsystems into the top-level sbt namespace through a single package object
|
||||
// technically, we need a dependency on all of mainProj's dependencies, but we don't do that since this is strictly an integration project
|
||||
// with the sole purpose of providing certain identifiers without qualification (with a package object)
|
||||
lazy val sbtProj = (project in sbtPath).
|
||||
lazy val sbtProj = (project in file("sbt")).
|
||||
dependsOn(mainProj, scriptedSbtProj % "test->test").
|
||||
settings(
|
||||
baseSettings,
|
||||
|
|
@ -298,10 +298,6 @@ def fullDocSettings = Util.baseScalacOptions ++ Docs.settings ++ Sxr.settings ++
|
|||
)
|
||||
|
||||
/* Nested Projproject paths */
|
||||
def sbtPath = file("sbt")
|
||||
def tasksPath = file("tasks")
|
||||
def launchPath = file("launch")
|
||||
def mainPath = file("main")
|
||||
|
||||
lazy val safeUnitTests = taskKey[Unit]("Known working tests (for both 2.10 and 2.11)")
|
||||
lazy val safeProjects: ScopeFilter = ScopeFilter(
|
||||
|
|
|
|||
|
|
@ -1,32 +0,0 @@
|
|||
|
||||
[@eed3si9n]: https://github.com/eed3si9n
|
||||
[2266]: https://github.com/sbt/sbt/issues/2266
|
||||
[2354]: https://github.com/sbt/sbt/pull/2354
|
||||
|
||||
### Improvements
|
||||
|
||||
- Adds `trackInternalDependencies` and `exportToInternal` keys. See below.
|
||||
|
||||
### Inter-project dependency tracking
|
||||
|
||||
sbt 0.13.10 adds `trackInternalDependencies` and `exportToInternal` settings. These can be used to control whether to trigger compilation of a dependent subprojects when you call `compile`. Both keys will take one of three values: `TrackLevel.NoTracking`, `TrackLevel.TrackIfMissing`, and `TrackLevel.TrackAlways`. By default they are both set to `TrackLevel.TrackAlways`.
|
||||
|
||||
When `trackInternalDependencies` is set to `TrackLevel.TrackIfMissing`, sbt will no longer try to compile internal (inter-project) dependencies automatically, unless there are no `*.class` files (or JAR file when `exportJars` is `true`) in the output directory. When the setting is set to `TrackLevel.NoTracking`, the compilation of internal dependencies will be skipped. Note that the classpath will still be appended, and dependency graph will still show them as dependencies. The motivation is to save the I/O overhead of checking for the changes on a build with many subprojects during development. Here's how to set all subprojects to `TrackIfMissing`.
|
||||
|
||||
lazy val root = (project in file(".")).
|
||||
aggregate(....).
|
||||
settings(
|
||||
inThisBuild(Seq(
|
||||
trackInternalDependencies := TrackLevel.TrackIfMissing,
|
||||
exportJars := true
|
||||
))
|
||||
)
|
||||
|
||||
The `exportToInternal` setting allows the dependee subprojects to opt out of the internal tracking, which might be useful if you want to track most subprojects except for a few. The intersection of the `trackInternalDependencies` and `exportToInternal` settings will be used to determine the actual track level. Here's an example to opt-out one project:
|
||||
|
||||
lazy val dontTrackMe = (project in file("dontTrackMe")).
|
||||
settings(
|
||||
exportToInternal := TrackLevel.NoTracking
|
||||
)
|
||||
|
||||
[#2266][2266]/[#2354][2354] by [@eed3si9n][@eed3si9n]
|
||||
|
|
@ -1 +0,0 @@
|
|||
[sbt](http://scala-sbt.org) is a Scala build tool.
|
||||
Loading…
Reference in New Issue