Saker.build is a language agnostic build system that focuses on extensibility and scalable incremental builds. It supports distributing build tasks over multiple build machines, rebuilding only the smallest possible part of the project, and can scale for tens of thousands of source files.
Saker.build uses its own scripting language for defining the build process and loads the build tasks from the configured task repositories. It integrates well with the Eclipse IDE and provides unmatched performance for Java builds.
Visit https://saker.build for more information.
Saker.build only requires Java 8+ to run. It is distributed as a single JAR file that contains all necessary classes to run the build system.
See Installation guide for downloading or installing an IDE plugin.
The Java source code of the build system is split up into multiple directories as follows:
core: Contains the core implementation of saker.build.
launching: Contains the Java classes that are used for the command line interface of saker.build.
internal: Contains internal build system classes that are specially packaged with the release JAR:
- The SakerScript default build language classes.
thirdparty: Contains repackaged source files of third party libraries included in saker.build. All classes are in the
support: Contains Java classes that are not part of the main build system release, but as supporting classes.
- IDE implementation support classes.
test: Contains the classes for testing.
native: Contains C/C++ sources of the supporting native libraries.
- Win32 and macOS implementations of file watch services.
- The compiled versions of these sources are present in the
resourcesdirectory. (Currently they are not built as part of the build system build process.)
resources: Contains resources that are included in the distributed JARs.
build: The build output directory, not checked into version control.
Building saker.build requires both JDK8 and JDK9 to be installed. It is built by the latest version of the saker.build system.
To perform the build, you need to set the output build directory, and the location of the installed JDKs:
java -jar path/to/saker.build.jar -bd build -EUsaker.java.jre.install.locations=path/to/jdk8;path/to/jdk9 export saker.build
You can choose an appropriate target in
saker.build to execute for your use-case. You may need other JDKs if you want to execute the tests on JDK10+.
The build can also be executed inside an IDE.
The documentation of saker.build is available at: https://saker.build/saker.build/doc/index.html
See the extension guide if you want to develop your own build tasks, task repositories, or build languages.
See the script guide for information about the built-in build language.
The source code for the project is licensed under GNU General Public License v3.0 only.
Official releases of the project (and parts of it) may be licensed under different terms. See the particular releases for more information.
See the contribution guide for information about how you can help the development of saker.build.