Class DefaultBuildRunner

java.lang.Object
org.savantbuild.runtime.DefaultBuildRunner
All Implemented Interfaces:
BuildRunner

public class DefaultBuildRunner extends Object implements BuildRunner
Default build runner. This is essentially the main entry point for the build system. It takes a build file and a list of targets and runs the build.

This implementation uses the main BuildFileParser to parse the build file into domain objects.

Once the build file is parsed, this uses the default ProjectRunner to run build on the project.

  • Constructor Details

    • DefaultBuildRunner

      public DefaultBuildRunner(org.savantbuild.output.Output output, BuildFileParser buildFileParser, ProjectRunner projectRunner)
  • Method Details

    • run

      public void run(Path buildFile, RuntimeConfiguration runtimeConfiguration) throws org.savantbuild.dep.workflow.ArtifactMetaDataMissingException, org.savantbuild.dep.workflow.ArtifactMissingException, BuildRunException, BuildFailureException, org.savantbuild.dep.domain.CompatibilityException, org.savantbuild.util.CyclicException, org.savantbuild.dep.LicenseException, org.savantbuild.security.MD5Exception, ParseException, PluginLoadException, org.savantbuild.dep.workflow.process.ProcessFailureException, org.savantbuild.dep.PublishException, org.savantbuild.domain.VersionException
      Loads the given build file and executes the given targets in the build file.
      Specified by:
      run in interface BuildRunner
      Parameters:
      buildFile - The build file.
      runtimeConfiguration - The runtime configuration.
      Throws:
      org.savantbuild.dep.workflow.ArtifactMetaDataMissingException - If any dependencies of the project are missing an AMD file in the repository or local cache.
      org.savantbuild.dep.workflow.ArtifactMissingException - If any dependencies of the project are missing in the repository or local cache.
      BuildRunException - If the build can not be run (internally not due to a failure of the build itself).
      BuildFailureException - If the build fails while running.
      org.savantbuild.dep.domain.CompatibilityException - If the project has incompatible versions of a dependency.
      org.savantbuild.util.CyclicException - If the project has cyclic dependencies.
      org.savantbuild.dep.LicenseException - If the project has a dependency with an invalid license.
      org.savantbuild.security.MD5Exception - If a dependency is corrupt.
      ParseException - If the build file can not be parsed.
      PluginLoadException - If a plugin load failed for any reason (the plugin might not exist, might be invalid or could have thrown an exception during construction because it was missing configuration or something.)
      org.savantbuild.dep.workflow.process.ProcessFailureException - If the downloading of a dependency fails.
      org.savantbuild.dep.PublishException - If there was an error publishing an artifact.
      org.savantbuild.domain.VersionException - If any of the versions are not semantic.