The project is structured as a multi-module Gradle build.
The root folder is the root project and there are several subproject folders, each prefixed with asciidoctorj-. Each subproject produces a primary artifact (e.g., jar or zip) and its supporting artifacts (e.g., javadoc, sources, etc).
The subprojects are as follows:
The common API for AsciidoctorJ. Other implementations for different platforms than JRuby may reuse and implement this API. Produces the asciidoctorj-api.jar
The main Java bindings for the Asciidoctor RubyGem (asciidoctor) running on JRuby. Also bundles optional RubyGems needed at runtime, such as coderay, tilt, haml and slim. Produces the asciidoctorj jar.
Produces the distribution zip that provides the standalone
Contains code examples used for documentation that are run and tested during builds.
When tests are modified the gradle task
copyAllExamplesToDocsmust be executed to update documentation required files in under
Bundles an Arquillian extension that allows to inject an Asciidoctor instance or other instances commonly used by Asciidoctor tests into a test case.
Contains some common test classes that are used by multiple other subprojects and the Arquillian extension.
Wildfly integration tests.
Spring Boot example app and integration tests.
The Gradle build is partitioned into the following files:
build.gradle gradle.properties settings.gradle gradle/ wrapper/ ... deploy.gradle deploySnapshot.gradle eclipse.gradle providedConfiguration.gradle publish.gradle sign.gradle asciidoctorj-arquillian-extension/ build.gradle asciidoctorj-api/ build.gradle asciidoctorj-core/ build.gradle asciidoctorj-distribution/ build.gradle asciidoctorj-documentation/ build.gradle asciidoctorj-test-support/ build.gradle asciidoctorj-wildfly-integration-test build.gradle
This will publish the all artifacts that have a snapshot version number to oss.jfrog.org.