Skip to content



Properties are pairs of String key-value that are used across Jeka system. It typically carries urls, local paths, tool versions or credentials. They can be globally accessed using JkProperties#get* static method.

Properties can be defined at different level, in order of precedence :

  • System properties : Properties can be defined using system properties as -DpropertyName=value. System properties can be injected from Jeka command line.
  • OS environment variables : Properties can also be defined as OS environment variable.
  • Project : Defined in [Project Root]/jeka/ Used typically for storing tool version (e.g. jeka.kotlin.version=1.5.21).
  • Global : Defined in [User Home]/.jeka/ file. Used typically to define urls, local paths and credentials.

Properties inherit from project properties defined in project parent folders (if exists).

Here, project2 will inherit properties defined in project1/jeka/ :

   + jeka
   + project2
      + project.properities.


Properties support interpolation via ${}tokens.

For example, if we define the following properties : foo=fooValue and bar=bar ${foo} then JkProperties.get("bar") will return 'bar fooValue'.

Standard properties

  • jeka.jdk.X= location of the JDK version X (e.g. jeka.jdk.11=/my/java/jdk11). It is used to compile projects when project JVM target version differs from Jeka running version.
  • jeka.kotlin.version : Version of Kotlin used for compiling both def and Kotlin project sources.
  • : Target JVM version for compiled files.


The repositories used to download and publish artifacts can be defined using properties. The download repositories are set using property, while publish repository is defined using jeka.repos.publish.

Use JkRepoFromProperties class to get the repositories defined by properties.


By default, when no repository is configred, artifacts are downloaded on Maven Central repo.

Using single repo

Using multiple repos, file://path/to/a/local/repo 

Using single repo with credential

For convenience, we can define multiple repositories and reference them using aliases


jeka.repos.myRepo2.password=myPassword2, myRepo2

Aliases exist for Maven Central and Jeka Github Repo, mavenCentral, jekaGithub