Skip to content

Building OmegaT

OmegaT is built with Gradle. Run gradlew tasks from the top level to see the available tasks. Run gradlew build to build all possible distfiles and run the main tests. Tasks skipped due to missing requirements will be noted in the output.

OmegaT will run on the latest Java, but is required to be compatible with Java 1.8.

Eclipse and NetBeans are recommended IDEs for working with OmegaT source code. NetBeans is required to modify *.form-based GUI layouts (install the Gradle Support plugin to open the OmegaT project in NetBeans.)

Check the other files in this directory for documentation. You can produce Javadoc by running gradlew javadoc, or browse online:

https://omegat.sourceforge.io/javadoc-latest/

Configuring Build Tasks

Some build tasks, such as signed installers, require additional configuration via a local.properties file placed at the root of the source tree. See local.properties.example.

Build Assets

Some build tasks require the user to supply additional files not included in the OmegaT source. These files should be placed in the assets directory, which by default is .., i.e. one level up from the OmegaT source root. You can specify a different directory by supplying the argument -PassetDir=/path/to/wherever.

In particular, with-JRE builds require a JRE tarball for the appropriate platform, e.g. OpenJDK11U-jre-*-macosx-x64.tar.gz.

Containerized Tasks

Some build tasks require additional software to be installed:

To alleviate the pain of installing and configuring things, these tools have been containerized and automated via Docker. If you want to run these build tasks, you are strongly recommended to install Docker:

https://www.docker.com/

Working with Dependencies

OmegaT uses Gradle to manage and fetch dependencies automatically. To add, change, or remove a dependency, see the dependencies block in build.gradle.

Dependency JARs are provided in the "source" distribution of OmegaT under /lib/provided, as insurance in case any dependencies should become unavailable online. When /lib/provided is present, compile-time dependencies will be resolved locally, minimizing network access (network access is still required for initializing the Gradle wrapper, fetching Gradle plugins, and fetching test dependencies).

Customized Dependencies

OmegaT uses unmodified packages as much as possible, but when modifications are required and the upstream project is abandoned or unresponsive, custom-patched libraries are also used.

Patched forks can be found on GitHub: https://github.com/omegat-org

In some cases (especially defunct projects) OmegaT forks are also published for general use on Maven Central: https://search.maven.org/search?q=g:org.omegat*

Dependencies not available for consumption via Maven/Gradle are committed to /lib/manual.