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 17. Search for "Java 17 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 build 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/corefor core artifactsdrop/X.Y/demofor demo artifactsdrop/X.Y/toolsfor 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.19
org.pushing-pixels:common:8.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 getCoreDependenciesto copy third-party dependencies for core artifacts intobuild/libs-core./gradlew getDemoDependenciesto copy third-party dependencies for demo artifacts intobuild/libs-demo./gradlew getToolsDependenciesto copy third-party dependencies for tools artifacts intobuild/libs-tools./gradlew getAllDependenciesto 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, and Component are self-contained within Radiance.
- Theming requires Ephemeral Chroma for its color token APIs.
- 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.