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
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:
Configuring Build Tasks
Some build tasks, such as signed installers, require additional configuration
local.properties file placed at the root of the source tree. See
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
.., i.e. one level up from the OmegaT source root. You can specify
a different directory by supplying the argument
In particular, with-JRE builds require a JRE tarball for the appropriate
Some build tasks require additional software to be installed:
Windows installers require InnoSetup with all optional language files http://www.jrsoftware.org/isinfo.php
Signed Windows installers require osslsigncode https://sourceforge.net/projects/osslsigncode/
Docs generation requires a whole ecosystem. See /doc_src/Readme.txt
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:
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).
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.