This is the top-level project for the Java API and backend bindings for the Prism Ruby language parser.
- api/ contains the API
- native/ contains a native binding for the Prism shared library
- wasm/ contains a Chicory-based WASM build and binding
Some files need to be generated before the Maven artifacts can build:
Sources under api are generated from templates in ../templates. Those sources are generated using the follow command line:
$ PRISM_EXCLUDE_PRETTYPRINT=1 PRISM_SERIALIZE_ONLY_SEMANTICS_FIELDS=1 bundle exec rake templates
The files are generated under api/src/main/java-templates and will not be removed with mvn clean.
The wasm project needs a WASM build of Prism to be generated with the following command:
$ make java-wasm WASI_SDK_PATH=<path to WASI sdk>
The build is generated under wasm/src/main/wasm and will not be removed with mvn clean.
The projects can be built and installed into a local Maven repository by running the following command:
$ mvn install
Run the following command to update all module versions:
$ mvn versions:set -DnewVersion=1.2.3-SNAPSHOT
Snapshots can be deployed to the Maven snapshot repository while the versions end with -SNAPSHOT:
$ mvn deploy
When releasing to Maven Central, all projects should be released together using the release profile, which will use the local default GPG key to sign the packages:
$ mvn deploy -Prelease