Elide Projects

Configure, build, run and inspect an Elide project.

A project is a directory with an elide.pkl. Outputs, dependencies, reports and build state go in .dev/. Run commands from the project directory, or pass -p PATH.

elide init --templates   # java, ktjvm, web-simple, web-demo, workspace

Minimal JVM project

amends "elide:project.pkl"

name = "hello"

jvm {
  main = "sample.HelloKt"
}

src/main/kotlin/sample/Hello.kt:

package sample

fun main() {
  println("Hello from Kotlin")
}
elide install
elide build
elide run

src/main/kotlin is found without a sources block; see Source Sets.

Building and running a Kotlin project with Elide

elide build --inspect lists the tasks and their options; see Build Tasks.

Named scripts

scripts {
  ["greet"] = "echo hello"
}
elide run greet

Scripts run under /bin/sh. An existing file takes precedence over a script name. Otherwise Elide looks in manifest scripts, then package.json or pyproject.toml scripts, then node_modules/.bin.

Dependencies

Declare Maven, npm and PyPI packages under dependencies; elide install resolves them. See Dependencies and the reference.

Workspaces

A workspace root lists member projects and builds them as one task graph. elide init --template workspace creates one. See Workspaces.

Inspect the resolved project

elide project info                 # resolved source sets, dependencies, artifacts
elide project advice               # usage advice for coding agents
elide project export               # the resolved manifest as JSON
elide project export --format=pom  # or intellij
elide classpath                    # the main compile classpath, one entry per line
elide classpath test:runtime       # [<source-set>:]<usage>

-f flags change the export. Formats: Project export formats. Classpath usages: Source Sets.

Pin the Elide version

elide use <version> writes .elideversion and installs that version for the directory; --no-install only writes the file. toolchain.engines in the manifest states accepted versions; see Toolchain.