Class SmithyBuildConfig

    • Method Detail

      • load

        public static SmithyBuildConfig load​(java.nio.file.Path file)
        Loads a SmithyBuildConfig from a JSON file on disk.

        The file is expected to contain the following structure: { "version": "1.0", "sources": ["model"], "imports": ["foo.json", "baz.json"], "outputDirectory": "build/output", "maven" { "dependencies": ["software.amazon.smithy:smithy-aws-traits:1.26.1"], "repositories": [ { "url": "https://example.com/maven", "httpCredentials": "${MAVEN_USER}:${MAVEN_PASSWORD}" } ] } "projections": { "projection-name": { "transforms": [ {"name": "transform-name", "args": ["argument1", "argument2", "..."]}, {"name": "other-transform"} }, "plugins": { "plugin-name": { "plugin-config": "value" }, "...": {} } } }, "plugins": { "plugin-name": { "plugin-config": "value" }, "...": {} } }

        Parameters:
        file - File to load and parse.
        Returns:
        Returns the loaded FileConfig.
        Throws:
        java.lang.RuntimeException - if the file cannot be loaded.
      • getVersion

        public java.lang.String getVersion()
        Gets the version of Smithy-Build.
        Returns:
        Returns the version.
      • getImports

        public java.util.List<java.lang.String> getImports()
        Gets the paths to all the models to import.

        Paths can point to individual model files or directories. All models stored in all recursive directories will be imported.

        Returns:
        Gets the list of models to import.
      • getSources

        public java.util.List<java.lang.String> getSources()
        Gets the paths to all model sources.

        Paths can point to individual model files or directories. All models stored in all recursive directories will be imported. Each found Smithy model will be considered a source model.

        Returns:
        Gets the list of models to import.
      • getOutputDirectory

        public java.util.Optional<java.lang.String> getOutputDirectory()
        Returns:
        Gets the optional output directory to store artifacts.
      • getProjections

        public java.util.Map<java.lang.String,​ProjectionConfig> getProjections()
        Gets all the configured projections.
        Returns:
        Gets the available projections as a map of name to config.
      • getPlugins

        public java.util.Map<java.lang.String,​ObjectNode> getPlugins()
        Gets the globally configured plugins that are applied to every projection.
        Returns:
        Gets plugin settings.
      • isIgnoreMissingPlugins

        public boolean isIgnoreMissingPlugins()
        If a plugin can't be found, Smithy will by default fail the build. This setting can be set to true to allow the build to progress even if there is a missing plugin.
        Returns:
        Returns true if missing build plugins are allowed.
      • getMaven

        public java.util.Optional<MavenConfig> getMaven()
        Gets Maven dependency configuration.

        Note that smithy-build does not directly resolve or use dependencies. It's up to other packages like the Smithy CLI to use a dependency resolver based on smithy-build.json configuration and call smithy-build with the appropriate classpath.

        Returns:
        Returns Maven dependency information.
      • getLastModifiedInMillis

        public long getLastModifiedInMillis()
        Get the last modified time of the configuration file.
        Returns:
        Returns the last modified time in milliseconds since the epoch.