Type object
File match bleep.yaml bleep.yml
Schema URL https://catalog.lintel.tools/schemas/schemastore/bleep/latest.json
Source https://raw.githubusercontent.com/oyvindberg/bleep/master/schema.json

Validate with Lintel

npx @lintel/lintel check
Type: object

Properties

$version string required
projects Record<string, object> required
jvm object
2 nested properties
name string required

a combination of JVM and version in this format graalvm-java17:22.1.0

index string

the default index is the coursier index, located at https://github.com/coursier/jvm-index/raw/master/index.json . If you need to use a JVM which is not there, you can specify another index here

scripts Record<string, ScriptMain>
templates Record<string, object>
resolvers Repository | Repository[]

Additional Maven/Ivy repositories for dependency resolution. Supports private repos with artifactregistry://, github://, gitlab:// schemes.

remote-cache object

Remote build cache configuration for S3-compatible storage. Credentials go in ~/.config/bleep/config.yaml or BLEEP_REMOTE_CACHE_S3_ACCESS_KEY_ID/BLEEP_REMOTE_CACHE_S3_SECRET_ACCESS_KEY env vars.

2 nested properties
uri string required

S3 bucket URI (e.g., s3://my-cache/builds) or S3-compatible endpoint (e.g., http://localhost:9000/bucket/prefix)

region string

AWS region (default: us-east-1)

Default: "us-east-1"

Definitions

ModuleName string
TemplateId string
TestFrameworkName string
PlatformName string
Option string
Options Option | Option[]
AnnotationProcessing object
enabled boolean

Enable annotation processing for Java sources

Default: false
ProjectName string
SourceLayout string
CompileOrder string

defaulted to 'java->scala'

SbtScope string
RelPath string
Dependency DependencyShort | DependencyLong
DependencyShort string
DependencyLong object
module string required
pattern=^[^:]+:{1,3}[^:]+:[^:]+$
forceJvm boolean
for3Use213 boolean
for213Use3 boolean
attributes Record<string, string>
configuration string
exclusions Record<string, ModuleName | ModuleName[]>

organization in key and module name(s) in value. example: {"org.scala-sbt" : "util-logging_2.13"}, or {"org.scala-sbt" : ["util-logging_2.13", "util-cache_2.13"]}

publication object
4 nested properties
name string
type string
ext string
classifier string
transitive boolean
isSbtPlugin boolean
Java object
options Option | Option[]
annotationProcessing object
1 nested properties
enabled boolean

Enable annotation processing for Java sources

Default: false
ecjVersion string

ECJ (Eclipse Compiler for Java) version. If set, uses ECJ instead of javac.

Kotlin object
version string

Kotlin version (e.g., "2.0.0", "2.1.0")

options Option | Option[]
jvmTarget string

JVM bytecode target version (e.g., "11", "17", "21")

Scala object
version string | string
options Option | Option[]
setup object
6 nested properties
order string

defaulted to 'java->scala'

Values: "java->scala" "scala->java"
addLibraryToBootClasspath boolean

Defaulted to true

addCompilerToClasspath boolean

Defaulted to false

addExtraJarsToClasspath boolean

Defaulted to false

manageBootClasspath boolean

Defaulted to true

filterLibraryFromClasspath boolean

Defaulted to true

strict boolean
compilerPlugins Dependency | Dependency[]
Platform object
name string
Values: "jvm" "js" "native"
mainClass string
jsVersion string
jsKind string
Values: "none" "commonjs" "esmodule"
jsSplitStyle object
All of: variant
2 nested properties
splitStyle string required
Values: "FewestModules" "SmallestModules" "SmallModulesFor"
packages string[]
jsEmitSourceMaps boolean
jsJsdom boolean
jsNodeVersion string
jvmOptions Option | Option[]
jvmRuntimeOptions Option | Option[]
nativeVersion string
nativeBuildTarget string
Values: "application" "library-dynamic" "library-static"
nativeLinkerReleaseMode string
Values: "release-fast" "release-size" "release-full"
nativeLTO string
Values: "none" "thin" "full"
nativeGc string
nativeMultithreading boolean
nativeOptimize boolean
nativeEmbedResources boolean
nativeUseIncrementalCompilation boolean
CompileSetup object
order string

defaulted to 'java->scala'

Values: "java->scala" "scala->java"
addLibraryToBootClasspath boolean

Defaulted to true

addCompilerToClasspath boolean

Defaulted to false

addExtraJarsToClasspath boolean

Defaulted to false

manageBootClasspath boolean

Defaulted to true

filterLibraryFromClasspath boolean

Defaulted to true

Jvm object
name string required

a combination of JVM and version in this format graalvm-java17:22.1.0

index string

the default index is the coursier index, located at https://github.com/coursier/jvm-index/raw/master/index.json . If you need to use a JVM which is not there, you can specify another index here

Project object
cross Record<string, object>
folder string
pattern=^\.\.?/.*$
source-layout string
Values: "none" "java" "normal" "cross-pure" "cross-full" "sbt-matrix"
sbt-scope string
Values: "main" "test" "it"
sources RelPath | RelPath[]

additional set of source directories. you should set sbt-scope and source-layout first

resources RelPath | RelPath[]

additional set of resource directories. you should set sbt-scope and source-layout first

sourcegen Script | Script[]

additional set of source directories. you should set sbt-scope and source-layout first

dependencies Dependency | Dependency[]
java object
3 nested properties
options Option | Option[]
annotationProcessing object
1 nested properties
enabled boolean

Enable annotation processing for Java sources

Default: false
ecjVersion string

ECJ (Eclipse Compiler for Java) version. If set, uses ECJ instead of javac.

scala object
5 nested properties
version string | string
options Option | Option[]
setup object
6 nested properties
order string

defaulted to 'java->scala'

Values: "java->scala" "scala->java"
addLibraryToBootClasspath boolean

Defaulted to true

addCompilerToClasspath boolean

Defaulted to false

addExtraJarsToClasspath boolean

Defaulted to false

manageBootClasspath boolean

Defaulted to true

filterLibraryFromClasspath boolean

Defaulted to true

strict boolean
compilerPlugins Dependency | Dependency[]
kotlin object
3 nested properties
version string

Kotlin version (e.g., "2.0.0", "2.1.0")

options Option | Option[]
jvmTarget string

JVM bytecode target version (e.g., "11", "17", "21")

platform object
19 nested properties
name string
Values: "jvm" "js" "native"
mainClass string
jsVersion string
jsKind string
Values: "none" "commonjs" "esmodule"
jsSplitStyle object
All of: variant
2 nested properties
splitStyle string required
Values: "FewestModules" "SmallestModules" "SmallModulesFor"
packages string[]
jsEmitSourceMaps boolean
jsJsdom boolean
jsNodeVersion string
jvmOptions Option | Option[]
jvmRuntimeOptions Option | Option[]
nativeVersion string
nativeBuildTarget string
Values: "application" "library-dynamic" "library-static"
nativeLinkerReleaseMode string
Values: "release-fast" "release-size" "release-full"
nativeLTO string
Values: "none" "thin" "full"
nativeGc string
nativeMultithreading boolean
nativeOptimize boolean
nativeEmbedResources boolean
nativeUseIncrementalCompilation boolean
isTestProject boolean
libraryVersionSchemes Dependency | Dependency[]

Version scheme to use for specific modules. Same syntax as a normal dependency, but the version need to be one of these values: "early-semver", "pvp", "semver-spec", "always", and "strict".

ignoreEvictionErrors string

Controls how dependency eviction conflicts are handled. 'yes' ignores all eviction errors, 'warn' converts them to warnings, 'no' fails on eviction errors. Default is 'no'.

Values: "yes" "warn" "no"
publish object

Publishing configuration. Presence marks a project as publishable. All fields merge through templates.

9 nested properties
enabled boolean

Set to false to opt out of publishing while inheriting other publish fields from a template

Default: true
groupId string

Maven groupId (required for publishing)

description string

Project description for POM

url string

Project homepage URL for POM

organization string

Organization name for POM

Project developers for POM

Project licenses for POM

sonatypeProfileName string

Sonatype staging profile name (defaults to groupId)

sonatypeCredentialHost string

Sonatype API host (defaults to central.sonatype.com)

ScriptMain object
project string required
main string required
sourceGlobs RelPath | RelPath[]

additional set of directories to watch. These are relative to the project folder of the script project. All source and resource folders for the project are already added

Script ScriptMain
PublishDeveloper object
id string required

Developer identifier

name string required

Developer display name

url string required

Developer URL (e.g. GitHub profile)

PublishLicense object
name string required

License name (e.g. MIT, Apache-2.0)

url string

License URL

distribution string

Distribution method (e.g. repo)

PublishConfig object

Publishing configuration. Presence marks a project as publishable. All fields merge through templates.

enabled boolean

Set to false to opt out of publishing while inheriting other publish fields from a template

Default: true
groupId string

Maven groupId (required for publishing)

description string

Project description for POM

url string

Project homepage URL for POM

organization string

Organization name for POM

Project developers for POM

Project licenses for POM

sonatypeProfileName string

Sonatype staging profile name (defaults to groupId)

sonatypeCredentialHost string

Sonatype API host (defaults to central.sonatype.com)

Repository string | object

A Maven, Ivy, or local repository for dependency resolution