This document describes how to build the application and platform binaries.
Download and install the following software packages:
- JDK 20 (Full JDK + JavaFX)
- Gradle 8.1.1
- Git 2.40.1
- warp v0.4.0-alpha
Note: The forked warp packer release fixes a bug in the main branch.
Clone the repository as follows:
git clone https://github.com/DaveJarvis/keenwrite.git
The repository is cloned.
Build the application überjar as follows:
cd keenwrite
gradle clean jar
The application is built.
After the application is compiled, run it using keenwrite.sh
.
This section describes setup instructions to import and run the application using an integrated development environment (IDE). Running the application should trigger a build.
This section describes how to build and run the application using IntellIJ's IDEA.
Complete the following steps to import the application:
- Start the IDE.
- Click File → New → Project from Existing Sources.
- Browse to the directory containing
keenwrite
. - Click OK.
- Select Gradle as the external model.
- Click Finish.
The project is imported into the IDE.
Run the application within the IDE as follows:
- Open Launcher.java.
- Click Run → Launcher.
The application is started.
This section describes how to set up the development environment and build native executables for supported operating systems.
Follow these one-time setup instructions to begin:
- Ensure
$HOME/bin
is set in thePATH
environment variable. - Copy
build-template
into$HOME/bin
.
Setup is complete.
Run the installer
script to build platform-specific binaries, such as:
./installer -V -o linux
The installer
script:
- downloads a JDK;
- generates a run script;
- bundles the JDK, run script, and JAR file; and
- creates a standalone binary, so no installation required.
Run ./installer -h
to see all command-line options.
After installing scripts/build-template
, build release binaries as follows:
git tag -a 2.0.0 -m "Release name"
git push origin --tags
./release.sh
When finished, browse to the project releases page to draft a new release.
Version numbers are read directly from Git using a plugin. The version
number is written to app.properties
in the resources
directory. The
application reads that file to display version information upon start.