Package: grails.util

## [Groovy] Class BuildSettings

- grails.util.BuildSettings

- Represents the project paths and other build settings that the user can change when running the Grails commands. Defaults are provided for all settings, but the user can override those by setting the appropriate system property or specifying a value for it in the BuildConfig.groovy file.

  Warning The behaviour is poorly defined if you explicitly set some of the project paths (such as BuildSettings.projectWorkDir), but not others. If you set one of them explicitly, set all of them to ensure consistent behaviour.

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static java.lang.String` | `APP_BASE_DIR` | The base directory of the application
    `static java.lang.String` | `BUILD_LISTENERS` | The name of the system property for multiple buildListeners.
    `static java.lang.String` | `COMPILER_SOURCE_LEVEL` | The compiler source level to use
    `static java.lang.String` | `COMPILER_TARGET_LEVEL` | The compiler source level to use
    `static java.lang.String` | `CONVERT_CLOSURES_KEY` | A property name to enable/disable AST conversion of closures actions&tags to methods
    `static java.lang.String` | `CORE_WORKING_DIR_NAME` | The name of the working directory for commands that don't belong to a project (like create-app)
    `static java.lang.String` | `DEPENDENCY_RESOLVER` | The dependency resolver to use
    `static java.lang.String` | `FUNCTIONAL_BASE_URL_PROPERTY` | A system property with this name is populated in the preparation phase of functional testing with the base URL that tests should be run against.
    `static java.lang.String` | `GLOBAL_PLUGINS_DIR` | The name of the system property for globalPluginsDir.
    `static java.lang.String` | `LOG_SCRIPT_TIMING_KEY` | Property name to enable/disable script event time logging.
    `static java.lang.String` | `OFFLINE_MODE` |
    `static java.lang.String` | `PLUGINS_DIR` | The name of the system property for projectPluginsDir.
    `static java.lang.String` | `PLUGIN_INCLUDE_SOURCE` | The name of the system property for pluginIncludeSource.
    `static java.lang.String` | `PLUGIN_STAGING_DIR` | The name of the system property for pluginStagingDir.
    `static java.lang.String` | `PROJECT_AUTODEPLOY_DIR` | The name of the WAR file of the project
    `static java.lang.String` | `PROJECT_CLASSES_DIR` | The name of the system property for classesDir.
    `static java.lang.String` | `PROJECT_DOCS_OUTPUT_DIR` | The name of the system property for docsOutputDir.
    `static java.lang.String` | `PROJECT_PLUGIN_BUILD_CLASSES_DIR` | The name of the system property for pluginBuildClassesDir.
    `static java.lang.String` | `PROJECT_PLUGIN_CLASSES_DIR` | The name of the system property for pluginClassesDir.
    `static java.lang.String` | `PROJECT_PLUGIN_PROVIDED_CLASSES_DIR` | The name of the system property for pluginProvidedClassesDir.
    `static java.lang.String` | `PROJECT_RESOURCES_DIR` | The name of the system property for #.
    `static java.lang.String` | `PROJECT_SOURCE_DIR` | The name of the system property for sourceDir.
    `static java.lang.String` | `PROJECT_TARGET_DIR` | The name of the system property for projectTargetDir.
    `static java.lang.String` | `PROJECT_TEST_CLASSES_DIR` | The name of the system property for testClassesDir.
    `static java.lang.String` | `PROJECT_TEST_REPORTS_DIR` | The name of the system property for testReportsDir.
    `static java.lang.String` | `PROJECT_TEST_SOURCE_DIR` | The name of the system property for testSourceDir.
    `static java.lang.String` | `PROJECT_WAR_EXPLODED_DIR` | The name of the system property for projectWarExplodedDir.
    `static java.lang.String` | `PROJECT_WAR_FILE` | The name of the WAR file of the project
    `static java.lang.String` | `PROJECT_WAR_OSGI_HEADERS` | The name of the system property for enabling osgi headers in the WAR Manifest
    `static java.lang.String` | `PROJECT_WEB_XML_FILE` | The name of the system property for BuildSettings.webXmlLocation.
    `static java.lang.String` | `PROJECT_WORK_DIR` | The name of the system property for projectWorkDir.
    `static java.lang.String` | `SERVLET_VERSION` | The version of the servlet API
    `static java.lang.String` | `VERBOSE_COMPILE` | The name of the system property for enabling verbose compilation verboseCompile.
    `static java.lang.String` | `WORK_DIR` | The name of the system property for grailsWorkDir.
    `protected boolean` | `settingsFileLoaded` |

  - Inherited fields
    Fields inherited from class | Fields
    --- | ---
    `class AbstractBuildSettings` | `cache, config, flatConfig, globalPluginsDir, globalPluginsDirSet, projectPluginsDir, projectPluginsDirSet`

  - ### Properties Summary

    Properties
    Type | Name and description
    --- | ---
    `static java.lang.String` | `BUILD_SCOPE`
    `static java.lang.String` | `BUILD_SCOPE_DESC`
    `static java.lang.String` | `COMPILE_SCOPE`
    `static java.lang.String` | `COMPILE_SCOPE_DESC`
    `static java.util.regex.Pattern` | `JAR_PATTERN`
    `static java.lang.String` | `PROVIDED_SCOPE`
    `static java.lang.String` | `PROVIDED_SCOPE_DESC`
    `static java.lang.String` | `RUNTIME_SCOPE`
    `static java.lang.String` | `RUNTIME_SCOPE_DESC`
    `static java.util.Map<java.lang.String, java.lang.String>` | `SCOPE_TO_DESC`
    `static java.lang.String` | `TEST_SCOPE`
    `static java.lang.String` | `TEST_SCOPE_DESC`
    `java.util.List<java.io.File>` | `applicationJars` List of jars provided in the applications 'lib' directory
    `java.io.File` | `autodeployDir` Directory where additional war files to be autodeployed are located
    `java.io.File` | `baseDir` The base directory for the build, which is normally the root directory of the current project.
    `java.util.List` | `buildListeners`
    `DependencyReport` | `buildResolveReport`
    `java.io.File` | `classesDir` The location to which Grails compiles a project's classes.
    `DependencyReport` | `compileResolveReport`
    `java.lang.String` | `compilerSourceLevel` The compiler source level to use
    `java.lang.String` | `compilerTargetLevel` The compiler target level to use
    `boolean` | `convertClosuresArtefacts`
    `GrailsCoreDependencies` | `coreDependencies`
    `java.util.List<java.io.File>` | `defaultBuildDependencies`
    `java.util.List<java.io.File>` | `defaultCompileDependencies`
    `boolean` | `defaultEnv` `true` if the default environment for a script should be used.
    `java.util.Map` | `defaultPluginMap` A Set of plugin names and versions that represent the default set of plugins installed when creating Grails applications
    `java.util.Set` | `defaultPluginSet` A Set of plugin names that represent the default set of plugins installed when creating Grails applications
    `java.util.List<java.io.File>` | `defaultProvidedDependencies`
    `java.util.List<java.io.File>` | `defaultRuntimeDependencies`
    `java.util.List<java.io.File>` | `defaultTestDependencies`
    `boolean` | `dependenciesExternallyConfigured` Whether the project required build dependencies are externally configured (by Maven for example) or not
    `DependencyManager` | `dependencyManager` Manages dependencies and dependency resolution in a Grails application
    `java.lang.String` | `dependencyResolver` The dependency resolution engine to use (aether or ivy)
    `java.io.File` | `docsOutputDir` The location of the documentation output.
    `boolean` | `enableResolve` Whether to enable resolving dependencies
    `java.util.Map<java.lang.String, java.lang.Object>` | `forkSettings` Fork Settings.
    `java.lang.String` | `grailsEnv` The environment for the current script.
    `java.io.File` | `grailsHome` Location of the Grails distribution as usually identified by the GRAILS_HOME environment variable.
    `java.lang.String` | `grailsVersion` The version of Grails being used for the current script.
    `java.io.File` | `grailsWorkDir` The location of the Grails working directory where non-project-specific temporary files are stored.
    `boolean` | `includeJavadoc` whether to include javadoc attachments in a resolve
    `boolean` | `includeSource` whether to include source attachments in a resolve
    `boolean` | `logScriptTiming`
    `boolean` | `modified` Return whether the BuildConfig has been modified
    `boolean` | `offline` Whether the build is allowed to connect to remote servers to resolve dependencies
    `java.io.File` | `pluginBuildClassesDir` The location to which Grails compiles build scoped plugins classes.
    `java.io.File` | `pluginClassesDir` The location to which Grails compiles a project's plugin classes.
    `java.util.List<java.io.File>` | `pluginDependencies`
    `java.lang.Boolean` | `pluginIncludeSource` Whether to include the source in binary plugin JAR files.
    `java.io.File` | `pluginProvidedClassesDir` The location to which Grails compiles provided scoped plugins classes.
    `java.io.File` | `pluginStagingDir` The location of the temporary directory where plugins are staged before being bundled into a ZIP or JAR file.
    `java.io.File` | `projectTargetDir` The location of the project target directory where reports, artifacts and so on are output.
    `java.io.File` | `projectWarExplodedDir` The location of the Grails WAR directory where exploded WAR is built.
    `java.io.File` | `projectWarFile` The WAR file of the project
    `boolean` | `projectWarOsgiHeaders` Setting for whether or not to enable OSGI headers in the WAR Manifest, can be overridden via -verboseCompile(=[true|false])?
    `java.io.File` | `projectWorkDir` The location of the project working directory for project-specific temporary files.
    `DependencyReport` | `providedResolveReport`
    `groovy.util.ConfigObject` | `proxySettings` The settings used to establish the HTTP proxy to use for dependency resolution etc.
    `java.io.File` | `proxySettingsFile` The file containing the proxy settings
    `java.io.File` | `resourcesDir` The location where Grails keeps temporary copies of a project's resources.
    `java.net.URLClassLoader` | `rootLoader` The root loader for the build.
    `DependencyReport` | `runtimeResolveReport`
    `java.lang.String` | `servletVersion` The version of the servlet API used
    `java.io.File` | `sourceDir` The location of the plain source.
    `java.io.File` | `testClassesDir` The location to which Grails compiles a project's test classes and any test scoped plugin classes.
    `java.io.File` | `testReportsDir` The location of the test reports.
    `DependencyReport` | `testResolveReport`
    `java.io.File` | `testSourceDir` The location of the test source.
    `java.io.File` | `userHome` Location of the current user's home directory - equivalent to "user.home" system property.
    `boolean` | `verboseCompile` Setting for whether or not to enable verbose compilation, can be overridden via -verboseCompile(=[true|false])?
    `java.io.File` | `webXmlLocation` Location of the generated web.xml file

  - ### Constructor Summary

    Constructors
    Constructor and description
    `BuildSettings ()`
    `BuildSettings (java.io.File grailsHome)`
    `BuildSettings (java.io.File grailsHome, java.io.File baseDir)`

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `DependencyManager` | `configureDependencyManager()`
    `protected void` | `copyDirectoryContentsToTarget(java.io.File dir, java.lang.String targetPath)`
    `groovy.util.ConfigSlurper` | `createConfigSlurper()`
    `DependencyManager` | `createNewDependencyManager()`
    `java.util.List<java.io.File>` | `doResolve(java.lang.String scope, java.util.List<java.io.File> pluginZips, boolean includeAppJars = true)`
    `java.io.File` | `getBasePluginDescriptor()`
    `java.util.List<java.io.File>` | `getBuildDependencies()` List containing the runtime dependencies of the app as File instances.
    `java.lang.Object[]` | `getBuildListeners()`
    `java.util.List<java.io.File>` | `getCompileDependencies()` List containing the compile-time dependencies of the app as File instances.
    `java.io.File` | `getConfigFile()`
    `java.lang.String` | `getConfigFilePath()` @return The path to the Config.groovy file (not to be confused with BuildConfig.groovy)
    `java.lang.String` | `getFunctionalTestBaseUrl()`
    `groovy.lang.Closure` | `getGrailsScriptClosure()`
    `protected java.lang.Object` | `getInlinePluginDependencyConfig(groovy.util.ConfigObject pluginConfig)`
    `java.util.List<java.io.File>` | `getPluginBuildDependencies()` Obtains a list of source plugins that are build time dependencies
    `java.util.List<java.io.File>` | `getPluginCompileDependencies()` Obtains a list of source plugins that are provided time dependencies
    `java.util.List<java.io.File>` | `getPluginProvidedDependencies()` Obtains a list of source plugins that are provided time dependencies
    `java.util.List<java.io.File>` | `getPluginRuntimeDependencies()` Obtains a list of source plugins that are runtime time dependencies
    `java.util.List<java.io.File>` | `getPluginTestDependencies()` Obtains a list of source plugins that are test time dependencies
    `java.util.List<java.io.File>` | `getProvidedDependencies()` List containing the runtime dependencies of the app as File instances.
    `java.util.List<java.io.File>` | `getRuntimeDependencies()` List containing the runtime dependencies of the app as File instances.
    `java.util.List<java.io.File>` | `getTestDependencies()` List containing the test-time dependencies of the app as File instances.
    `java.io.File` | `getWebXmlLocation()`
    `void` | `handleInlinePlugin(java.lang.String pluginName, java.io.File dir, DependencyManager dependencyManager)`
    `static void` | `initialiseDefaultLog4j(java.lang.ClassLoader classLoader)`
    `void` | `initializeResourcesDir()`
    `boolean` | `isDependenciesExternallyConfigured()`
    `boolean` | `isGrailsProject()`
    `boolean` | `isPluginProject()`
    `boolean` | `isRegisteredInMetadata(java.lang.String pluginName)`
    `protected void` | `loadBuildPropertiesFromClasspath(java.util.Properties buildProps)`
    `groovy.util.ConfigObject` | `loadConfig(java.lang.String environment = null)` Loads the application's BuildSettings.groovy file if it exists and returns the corresponding config object.
    `groovy.util.ConfigObject` | `loadConfig(java.io.File configFile, java.lang.String environment = null)` Loads the given configuration file if it exists and returns the corresponding config object.
    `groovy.util.ConfigObject` | `loadConfig(groovy.lang.Script script, java.lang.String environment = null)` Loads the given script and returns corresponding config object.
    `groovy.util.ConfigObject` | `loadConfig(groovy.util.ConfigObject config)`
    `protected groovy.util.ConfigObject` | `loadSettingsFile()`
    `protected java.io.File` | `makeAbsolute(java.io.File dir)`
    `boolean` | `notDefinedInBuildConfig(java.lang.String pluginName)`
    `groovy.lang.GroovyClassLoader` | `obtainGroovyClassLoader()`
    `protected void` | `parseGrailsBuildListeners()`
    `protected void` | `postLoadConfig()`
    `void` | `setBaseDir(java.io.File newBaseDir)`
    `void` | `setBuildDependencies(java.util.List<java.io.File> deps)` Sets the runtime dependencies for the project
    `void` | `setBuildListeners(java.lang.Object buildListeners)`
    `void` | `setClassesDir(java.io.File dir)`
    `void` | `setCompileDependencies(java.util.List<java.io.File> deps)` Sets the compile time dependencies for the project
    `void` | `setConvertClosuresArtefacts(boolean convert)`
    `void` | `setDependenciesExternallyConfigured(boolean dependenciesExternallyConfigured)`
    `void` | `setGrailsWorkDir(java.io.File dir)`
    `void` | `setLogScriptTiming(boolean b)`
    `void` | `setPluginBuildClassesDir(java.io.File dir)`
    `void` | `setPluginClassesDir(java.io.File dir)`
    `void` | `setPluginIncludeSource(boolean include)`
    `void` | `setPluginProvidedClassesDir(java.io.File dir)`
    `void` | `setPluginStagingDir(java.io.File dir)`
    `void` | `setProjectTargetDir(java.io.File dir)`
    `void` | `setProjectWarExplodedDir(java.io.File dir)`
    `void` | `setProjectWarFile(java.io.File file)`
    `void` | `setProjectWarOsgiHeaders(boolean flag)`
    `void` | `setProjectWorkDir(java.io.File dir)`
    `void` | `setProvidedDependencies(java.util.List<java.io.File> deps)` Sets the runtime dependencies for the project
    `void` | `setResourcesDir(java.io.File dir)`
    `void` | `setRuntimeDependencies(java.util.List<java.io.File> deps)` Sets the runtime dependencies for the project
    `void` | `setSourceDir(java.io.File dir)`
    `void` | `setTestClassesDir(java.io.File dir)`
    `void` | `setTestDependencies(java.util.List<java.io.File> deps)` Sets the test time dependencies for the project
    `void` | `setTestReportsDir(java.io.File dir)`
    `void` | `setTestSourceDir(java.io.File dir)`
    `void` | `setVerboseCompile(boolean flag)`
    `void` | `setWebXmlLocation(java.io.File location)`
    `protected boolean` | `shouldResolve()`
    `void` | `storeDependencyCache()`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class AbstractBuildSettings` | `addPluginDirectory, getConfig, getGlobalPluginsDir, getImplicitPluginDirectories, getInlinePluginDirectories, getInlinePluginsFromConfiguration, getInlinePluginsFromConfiguration, getPluginBaseDirectories, getPluginDirectories, getProjectPluginsDir, isInlinePluginLocation, setConfig, setGlobalPluginsDir, setProjectPluginsDir`
    `class java.lang.Object` | `java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()`

- - ### Field Detail

    - #### public static final java.lang.String APP_BASE_DIR

      The base directory of the application

    - #### public static final java.lang.String BUILD_LISTENERS

      The name of the system property for multiple buildListeners.

    - #### public static final java.lang.String COMPILER_SOURCE_LEVEL

      The compiler source level to use

    - #### public static final java.lang.String COMPILER_TARGET_LEVEL

      The compiler source level to use

    - #### public static final java.lang.String CONVERT_CLOSURES_KEY

      A property name to enable/disable AST conversion of closures actions&tags to methods

    - #### public static final java.lang.String CORE_WORKING_DIR_NAME

      The name of the working directory for commands that don't belong to a project (like create-app)

    - #### public static final java.lang.String DEPENDENCY_RESOLVER

      The dependency resolver to use

    - #### public static final java.lang.String FUNCTIONAL_BASE_URL_PROPERTY

      A system property with this name is populated in the preparation phase of functional testing with the base URL that tests should be run against.

    - #### public static final java.lang.String GLOBAL_PLUGINS_DIR

      The name of the system property for globalPluginsDir.

    - #### public static final java.lang.String LOG_SCRIPT_TIMING_KEY

      Property name to enable/disable script event time logging.

    - #### public static final java.lang.String OFFLINE_MODE

    - #### public static final java.lang.String PLUGINS_DIR

      The name of the system property for projectPluginsDir.

    - #### public static final java.lang.String PLUGIN_INCLUDE_SOURCE

      The name of the system property for pluginIncludeSource.

    - #### public static final java.lang.String PLUGIN_STAGING_DIR

      The name of the system property for pluginStagingDir.

    - #### public static final java.lang.String PROJECT_AUTODEPLOY_DIR

      The name of the WAR file of the project

    - #### public static final java.lang.String PROJECT_CLASSES_DIR

      The name of the system property for classesDir.

    - #### public static final java.lang.String PROJECT_DOCS_OUTPUT_DIR

      The name of the system property for docsOutputDir.

    - #### public static final java.lang.String PROJECT_PLUGIN_BUILD_CLASSES_DIR

      The name of the system property for pluginBuildClassesDir.

    - #### public static final java.lang.String PROJECT_PLUGIN_CLASSES_DIR

      The name of the system property for pluginClassesDir.

    - #### public static final java.lang.String PROJECT_PLUGIN_PROVIDED_CLASSES_DIR

      The name of the system property for pluginProvidedClassesDir.

    - #### public static final java.lang.String PROJECT_RESOURCES_DIR

      The name of the system property for #.

    - #### public static final java.lang.String PROJECT_SOURCE_DIR

      The name of the system property for sourceDir.

    - #### public static final java.lang.String PROJECT_TARGET_DIR

      The name of the system property for projectTargetDir.

    - #### public static final java.lang.String PROJECT_TEST_CLASSES_DIR

      The name of the system property for testClassesDir.

    - #### public static final java.lang.String PROJECT_TEST_REPORTS_DIR

      The name of the system property for testReportsDir.

    - #### public static final java.lang.String PROJECT_TEST_SOURCE_DIR

      The name of the system property for testSourceDir.

    - #### public static final java.lang.String PROJECT_WAR_EXPLODED_DIR

      The name of the system property for projectWarExplodedDir.

    - #### public static final java.lang.String PROJECT_WAR_FILE

      The name of the WAR file of the project

    - #### public static final java.lang.String PROJECT_WAR_OSGI_HEADERS

      The name of the system property for enabling osgi headers in the WAR Manifest

    - #### public static final java.lang.String PROJECT_WEB_XML_FILE

      The name of the system property for BuildSettings.webXmlLocation.

    - #### public static final java.lang.String PROJECT_WORK_DIR

      The name of the system property for projectWorkDir.

    - #### public static final java.lang.String SERVLET_VERSION

      The version of the servlet API

    - #### public static final java.lang.String VERBOSE_COMPILE

      The name of the system property for enabling verbose compilation verboseCompile.

    - #### public static final java.lang.String WORK_DIR

      The name of the system property for grailsWorkDir.

    - #### protected boolean settingsFileLoaded

  - ### Property Detail

    - #### static final java.lang.String BUILD_SCOPE

    - #### static final java.lang.String BUILD_SCOPE_DESC

    - #### static final java.lang.String COMPILE_SCOPE

    - #### static final java.lang.String COMPILE_SCOPE_DESC

    - #### static final java.util.regex.Pattern JAR_PATTERN

    - #### static final java.lang.String PROVIDED_SCOPE

    - #### static final java.lang.String PROVIDED_SCOPE_DESC

    - #### static final java.lang.String RUNTIME_SCOPE

    - #### static final java.lang.String RUNTIME_SCOPE_DESC

    - #### static final java.util.Map<java.lang.String, java.lang.String> SCOPE_TO_DESC

    - #### static final java.lang.String TEST_SCOPE

    - #### static final java.lang.String TEST_SCOPE_DESC

    - #### java.util.List<java.io.File> applicationJars

      List of jars provided in the applications 'lib' directory

    - #### java.io.File autodeployDir

      Directory where additional war files to be autodeployed are located

    - #### java.io.File baseDir

      The base directory for the build, which is normally the root directory of the current project. If a command is run outside of a project, then this will be the current working directory that the command was launched from.

    - #### java.util.List buildListeners

    - #### DependencyReport buildResolveReport

    - #### java.io.File classesDir

      The location to which Grails compiles a project's classes.

    - #### DependencyReport compileResolveReport

    - #### java.lang.String compilerSourceLevel

      The compiler source level to use

    - #### java.lang.String compilerTargetLevel

      The compiler target level to use

    - #### boolean convertClosuresArtefacts

    - #### GrailsCoreDependencies coreDependencies

    - #### @groovy.lang.Lazy java.util.List<java.io.File> defaultBuildDependencies

    - #### @groovy.lang.Lazy java.util.List<java.io.File> defaultCompileDependencies

    - #### boolean defaultEnv

      `true` if the default environment for a script should be used.

    - #### java.util.Map defaultPluginMap

      A Set of plugin names and versions that represent the default set of plugins installed when creating Grails applications

    - #### java.util.Set defaultPluginSet

      A Set of plugin names that represent the default set of plugins installed when creating Grails applications

    - #### @groovy.lang.Lazy java.util.List<java.io.File> defaultProvidedDependencies

    - #### @groovy.lang.Lazy java.util.List<java.io.File> defaultRuntimeDependencies

    - #### @groovy.lang.Lazy java.util.List<java.io.File> defaultTestDependencies

    - #### boolean dependenciesExternallyConfigured

      Whether the project required build dependencies are externally configured (by Maven for example) or not

    - #### DependencyManager dependencyManager

      Manages dependencies and dependency resolution in a Grails application

    - #### java.lang.String dependencyResolver

      The dependency resolution engine to use (aether or ivy)

    - #### java.io.File docsOutputDir

      The location of the documentation output.

    - #### boolean enableResolve

      Whether to enable resolving dependencies

    - #### java.util.Map<java.lang.String, java.lang.Object> forkSettings

      Fork Settings. These are the default settings used to control forked mode, and what

    - #### java.lang.String grailsEnv

      The environment for the current script.

    - #### java.io.File grailsHome

      Location of the Grails distribution as usually identified by the GRAILS_HOME environment variable. This value may be `null` if GRAILS_HOME is not set, for example if a project uses the Grails JAR files directly.

    - #### java.lang.String grailsVersion

      The version of Grails being used for the current script.

    - #### java.io.File grailsWorkDir

      The location of the Grails working directory where non-project-specific temporary files are stored.

    - #### boolean includeJavadoc

      whether to include javadoc attachments in a resolve

    - #### boolean includeSource

      whether to include source attachments in a resolve

    - #### boolean logScriptTiming

    - #### boolean modified

      Return whether the BuildConfig has been modified

    - #### boolean offline

      Whether the build is allowed to connect to remote servers to resolve dependencies

    - #### java.io.File pluginBuildClassesDir

      The location to which Grails compiles build scoped plugins classes.

    - #### java.io.File pluginClassesDir

      The location to which Grails compiles a project's plugin classes. Plugin classes that are compile or runtime scoped will be compiled to this directory

    - #### java.util.List<java.io.File> pluginDependencies

    - #### java.lang.Boolean pluginIncludeSource

      Whether to include the source in binary plugin JAR files.

    - #### java.io.File pluginProvidedClassesDir

      The location to which Grails compiles provided scoped plugins classes.

    - #### java.io.File pluginStagingDir

      The location of the temporary directory where plugins are staged before being bundled into a ZIP or JAR file.

    - #### java.io.File projectTargetDir

      The location of the project target directory where reports, artifacts and so on are output.

    - #### java.io.File projectWarExplodedDir

      The location of the Grails WAR directory where exploded WAR is built.

    - #### java.io.File projectWarFile

      The WAR file of the project

    - #### boolean projectWarOsgiHeaders

      Setting for whether or not to enable OSGI headers in the WAR Manifest, can be overridden via -verboseCompile(=[true|false])?

    - #### java.io.File projectWorkDir

      The location of the project working directory for project-specific temporary files.

    - #### DependencyReport providedResolveReport

    - #### groovy.util.ConfigObject proxySettings

      The settings used to establish the HTTP proxy to use for dependency resolution etc.

    - #### java.io.File proxySettingsFile

      The file containing the proxy settings

    - #### java.io.File resourcesDir

      The location where Grails keeps temporary copies of a project's resources.

    - #### java.net.URLClassLoader rootLoader

      The root loader for the build. This has the required libraries on the classpath.

    - #### DependencyReport runtimeResolveReport

    - #### java.lang.String servletVersion

      The version of the servlet API used

    - #### java.io.File sourceDir

      The location of the plain source.

    - #### java.io.File testClassesDir

      The location to which Grails compiles a project's test classes and any test scoped plugin classes.

    - #### java.io.File testReportsDir

      The location of the test reports.

    - #### DependencyReport testResolveReport

    - #### java.io.File testSourceDir

      The location of the test source.

    - #### java.io.File userHome

      Location of the current user's home directory - equivalent to "user.home" system property.

    - #### boolean verboseCompile

      Setting for whether or not to enable verbose compilation, can be overridden via -verboseCompile(=[true|false])?

    - #### java.io.File webXmlLocation

      Location of the generated web.xml file

  - ### Constructor Detail

    - #### BuildSettings()

    - #### BuildSettings(java.io.File grailsHome)

    - #### BuildSettings(java.io.File grailsHome, java.io.File baseDir)

  - ### Method Detail

    - #### @groovy.transform.CompileStatic DependencyManager configureDependencyManager()

    - #### @groovy.transform.CompileStatic protected void copyDirectoryContentsToTarget(java.io.File dir, java.lang.String targetPath)

    - #### @groovy.transform.CompileStatic groovy.util.ConfigSlurper createConfigSlurper()

    - #### @groovy.transform.CompileStatic DependencyManager createNewDependencyManager()

    - #### @groovy.transform.CompileStatic java.util.List<java.io.File> doResolve(java.lang.String scope, java.util.List<java.io.File> pluginZips, boolean includeAppJars = true)

    - #### java.io.File getBasePluginDescriptor()

    - #### @groovy.transform.CompileStatic java.util.List<java.io.File> getBuildDependencies()

      List containing the runtime dependencies of the app as File instances.

    - #### java.lang.Object[] getBuildListeners()

    - #### @groovy.transform.CompileStatic java.util.List<java.io.File> getCompileDependencies()

      List containing the compile-time dependencies of the app as File instances.

    - #### @groovy.transform.CompileStatic java.io.File getConfigFile()

    - #### @groovy.transform.CompileStatic java.lang.String getConfigFilePath()

      Returns:
        The path to the Config.groovy file (not to be confused with BuildConfig.groovy)

    - #### java.lang.String getFunctionalTestBaseUrl()

    - #### groovy.lang.Closure getGrailsScriptClosure()

    - #### protected java.lang.Object getInlinePluginDependencyConfig(groovy.util.ConfigObject pluginConfig)

    - #### @groovy.transform.CompileStatic java.util.List<java.io.File> getPluginBuildDependencies()

      Obtains a list of source plugins that are build time dependencies

      Returns:
        A list of the source zips

    - #### @groovy.transform.CompileStatic java.util.List<java.io.File> getPluginCompileDependencies()

      Obtains a list of source plugins that are provided time dependencies

      Returns:
        A list of the source zips

    - #### @groovy.transform.CompileStatic java.util.List<java.io.File> getPluginProvidedDependencies()

      Obtains a list of source plugins that are provided time dependencies

      Returns:
        A list of the source zips

    - #### @groovy.transform.CompileStatic java.util.List<java.io.File> getPluginRuntimeDependencies()

      Obtains a list of source plugins that are runtime time dependencies

      Returns:
        A list of the source zips

    - #### @groovy.transform.CompileStatic java.util.List<java.io.File> getPluginTestDependencies()

      Obtains a list of source plugins that are test time dependencies

      Returns:
        A list of the source zips

    - #### @groovy.transform.CompileStatic java.util.List<java.io.File> getProvidedDependencies()

      List containing the runtime dependencies of the app as File instances.

    - #### @groovy.transform.CompileStatic java.util.List<java.io.File> getRuntimeDependencies()

      List containing the runtime dependencies of the app as File instances.

    - #### @groovy.transform.CompileStatic java.util.List<java.io.File> getTestDependencies()

      List containing the test-time dependencies of the app as File instances.

    - #### java.io.File getWebXmlLocation()

    - #### @groovy.transform.CompileStatic void handleInlinePlugin(java.lang.String pluginName, java.io.File dir, DependencyManager dependencyManager)

    - #### @groovy.transform.CompileStatic static void initialiseDefaultLog4j(java.lang.ClassLoader classLoader)

    - #### @groovy.transform.CompileStatic void initializeResourcesDir()

    - #### boolean isDependenciesExternallyConfigured()

    - #### @groovy.transform.CompileStatic boolean isGrailsProject()

    - #### boolean isPluginProject()

    - #### boolean isRegisteredInMetadata(java.lang.String pluginName)

    - #### @groovy.transform.CompileStatic protected void loadBuildPropertiesFromClasspath(java.util.Properties buildProps)

    - #### groovy.util.ConfigObject loadConfig(java.lang.String environment = null)

      Loads the application's BuildSettings.groovy file if it exists and returns the corresponding config object. If the file does not exist, this returns an empty config.

    - #### @groovy.transform.CompileStatic groovy.util.ConfigObject loadConfig(java.io.File configFile, java.lang.String environment = null)

      Loads the given configuration file if it exists and returns the corresponding config object. If the file does not exist, this returns an empty config.

    - #### @groovy.transform.CompileStatic groovy.util.ConfigObject loadConfig(groovy.lang.Script script, java.lang.String environment = null)

      Loads the given script and returns corresponding config object. If the file does not exist, this returns an empty config.

    - #### @groovy.transform.CompileStatic groovy.util.ConfigObject loadConfig(groovy.util.ConfigObject config)

    - #### @groovy.transform.CompileStatic protected groovy.util.ConfigObject loadSettingsFile()

    - #### protected java.io.File makeAbsolute(java.io.File dir)

    - #### @java.lang.Deprecated boolean notDefinedInBuildConfig(java.lang.String pluginName)

    - #### groovy.lang.GroovyClassLoader obtainGroovyClassLoader()

    - #### protected void parseGrailsBuildListeners()

    - #### protected void postLoadConfig()

    - #### @groovy.transform.CompileStatic void setBaseDir(java.io.File newBaseDir)

      Changes the base directory, making sure that everything that depends on it gets refreshed too. If you have have previously loaded a configuration file, you should load it again after calling this method.

      Warning This method resets the project paths, so if they have been set manually by the caller, then that information will be lost!

    - #### @groovy.transform.CompileStatic void setBuildDependencies(java.util.List<java.io.File> deps)

      Sets the runtime dependencies for the project

    - #### void setBuildListeners(java.lang.Object buildListeners)

    - #### void setClassesDir(java.io.File dir)

    - #### @groovy.transform.CompileStatic void setCompileDependencies(java.util.List<java.io.File> deps)

      Sets the compile time dependencies for the project

    - #### void setConvertClosuresArtefacts(boolean convert)

    - #### void setDependenciesExternallyConfigured(boolean dependenciesExternallyConfigured)

    - #### void setGrailsWorkDir(java.io.File dir)

    - #### void setLogScriptTiming(boolean b)

    - #### void setPluginBuildClassesDir(java.io.File dir)

    - #### void setPluginClassesDir(java.io.File dir)

    - #### void setPluginIncludeSource(boolean include)

    - #### void setPluginProvidedClassesDir(java.io.File dir)

    - #### void setPluginStagingDir(java.io.File dir)

    - #### void setProjectTargetDir(java.io.File dir)

    - #### void setProjectWarExplodedDir(java.io.File dir)

    - #### void setProjectWarFile(java.io.File file)

    - #### void setProjectWarOsgiHeaders(boolean flag)

    - #### void setProjectWorkDir(java.io.File dir)

    - #### @groovy.transform.CompileStatic void setProvidedDependencies(java.util.List<java.io.File> deps)

      Sets the runtime dependencies for the project

    - #### void setResourcesDir(java.io.File dir)

    - #### @groovy.transform.CompileStatic void setRuntimeDependencies(java.util.List<java.io.File> deps)

      Sets the runtime dependencies for the project

    - #### void setSourceDir(java.io.File dir)

    - #### void setTestClassesDir(java.io.File dir)

    - #### @groovy.transform.CompileStatic void setTestDependencies(java.util.List<java.io.File> deps)

      Sets the test time dependencies for the project

    - #### void setTestReportsDir(java.io.File dir)

    - #### void setTestSourceDir(java.io.File dir)

    - #### void setVerboseCompile(boolean flag)

    - #### void setWebXmlLocation(java.io.File location)

    - #### protected boolean shouldResolve()

    - #### @groovy.transform.CompileStatic void storeDependencyCache()