Typical workflow and tasks
==========================

This shows some typical workflow gradle commands.

Run tests on a module:
gradlew -p solr/core test

Run test of a single-class (run "gradlew :helpTests" for more):
gradlew -p solr/core test --tests "*Demo*"

Run all tests and validation checks on a module:
gradlew -p solr/core check

Run all tests and validation checks on everything:
gradlew check

Run all validation checks but skip all tests:
gradlew check -x test

Assemble a single module's JAR (here for solr-core):
gradlew -p solr/core assemble
ls solr/core/build/libs

Create all distributable packages, POMs, etc. and create a
local maven repository for inspection:
gradlew mavenLocal
ls -R build/maven-local/

Put together a local Solr binary "distribution" folder:
gradlew -p solr/packaging assemble
ls solr/packaging/build/solr-*               # expanded directory

For quick local development
gradlew -p solr/packaging dev
ls solr/packaging/build/dev                  # expanded directory

Generate the release tar archive (see publishing.txt for details)
gradlew -p solr/distribution assembleRelease
ls solr/distribution/build/release           # release archives

Build a docker image from the local repository (see docker/gradle-help.txt for more)
gradlew dockerBuild dockerTag
docker run --rm -p 8983:8983 apache/solr:9.0.0-SNAPSHOT


Other validation and checks
===========================

Generate a report of dependencies with known OWASP vulnerabilities:
gradlew :dependencyCheckAnalyze
open ./build/reports/dependency-check-report.html

Additional General Options
==========================

Use the following environment variable or gradle property to ignore all ref-guide steps when running assemble or check.
`-Prefguide.include=false`
`SOLR_REF_GUIDE_INCLUDE=false`
