Radiance libraries are built with Gradle. Each library has its own build.gradle
file, and the top-level build.gradle
has tasks to build, package and deploy Radiance artifacts.
Radiance is built with Java 11. Search for "Java 11 download" in your favorite search engine, or browse this page (and perhaps the archives that it points to) to get the JDK distribution for your environment.
Radiance artifacts are split into three groups - core
, demo
and tools
. Core artifacts are binaries that provide application-facing functionality of Common, Animation, Theming, Components etc. Demo artifacts are binaries that provide the bundled test / demo applications for local testing of the various core Radiance libraries. Tools artifacts are binaries for general maintenance of various Radiance libraries.
To build library artifacts, run ./gradlew
in your terminal. After this command completes, the packaged jar files will be under the matching library folders. To copy all the jars under one location, run ./gradlew copyJars
command. For version X.Y
of Radiance (see version
in build.gradle
), the artifacts will be copied under:
drop/X.Y/core
for core artifactsdrop/X.Y/demo
for demo artifactsdrop/X.Y/tools
for tools artifacts
Some Radiance libraries have third-party dependencies. To print the full dependency tree, run ./gradlew printRuntimeDependencies
. Here is a snippet that shows the dependencies for SVG Transcoder:
-------------- svg-transcoder ---------------
org.apache.xmlgraphics:batik-all:1.17
org.pushing-pixels:common:7.5.0
To locally copy these dependencies (in case you do not want to pull them at build time with Gradle, Maven or other similar build tools in your own environment), use the following:
./gradlew getCoreDependencies
to copy third-party dependencies for core artifacts intobuild/libs-core
./gradlew getDemoDependencies
to copy third-party dependencies for demo artifacts intobuild/libs-demo
./gradlew getToolsDependencies
to copy third-party dependencies for tools artifacts intobuild/libs-tools
./gradlew getAllDependencies
to copy third-party dependencies for all artifacts into the folders above
For a more detailed tree of dependencies, run ./gradlew tools:svg-transcoder:dependencies
- substituting the relevant module name.
Third-party dependencies of core Radiance libraries are kept to a minimum:
- Common, Animation, Theming and Component are self-contained within Radiance.
- Kotlin libraries (Swing-ktx, Animation-ktx, Theming-ktx, Component-ktx) require Kotlin standard library and coroutines library.
Radiance demos and tools rely on a number of third-party libraries, mainly FormLayout from JGoodies, and Retrofit2 from Square, as well as Apache Batik for SVG Transcoder. Those dependencies can be seen in the relevant build.gradle
files.