blob: 0cb87dc3e9ce10354f6c3d7b9b44a9a951bff469 [file] [log] [blame] [view]
# Gradle Command-Line
Useful commands (`gw` comes from https://github.com/dougborg/gdub, otherwise `./gradlew` can be used instead):
## Build and run
# Build and start JMeter GUI
gw runGui
# Build project and copy relevant jars to rootDir/lib, and start JMeter
gw createDist; ./bin/jmeter
# Build all distributions (source, binary)
gw :src:dist:assemble
## Base project info
# Display all submodules
gw projects
# Different tasks for current module
gw tasks
## Cleaning build directories
Technically `clean` should not be required, every time it is required it might be a bug.
However it might be useful to perform a "clean" build:
# Cleans current project (submodule)
gw clean
# Cleans the specified project
gw :src:core:clean
## Dependencies
# Displays dependencies. Gradle's "configurations" are something like different classpaths.
gw dependencies
# Displays dependencies for all projects
gw allDependencies
# Analyze why the project depends on `org.ow2.asm:asm`
gw dependencyInsight --dependency org.ow2.asm:asm
# Verify checksums of dependencies
# Checksum verification is done by default
# Expected checksums are stored in /checksum.properties file
# Actual checksums are stored in /build/checksum/computed.checksum.properties
## Static checks
### Release Audit Tool
# Run RAT
gw rat
### Code Formatting
# Run spotlessApply and checkstyleAll
gw style
# Run checkstlye for all
gw checkstyleAll
#### Fine Grained Formatting Commands
# Run checkstyle for main (non-test) code
gw checkstyleMain
# Run checkstyle for test code
gw checkstyleTest
# Run Spotless checks
gw spotlessCheck
# Fix any issues found by Spotless
gw spotlessApply
## Compiling Code
gw compileJava
gw compileTestJava
...
## Build Project
# Just build jar (see build/libs/*.jar)
gw jar
# "build" is a default task to "execute all the actions"
gw build
# Test might be skipped by `-x test` (Gradle's default way to skip task by name)
gw -x test build
# Build project in parallel
gw build --parallel
## Tests
Gradle automatically tracks task dependencies, so if you modify a file in `/src/jorphan/*`,
then you can invoke `gw check` at project level or in `core`, and Gradle will automatically
build only the required jars and files.
# Runs all the tests (unit tests, checkstyle, etc)
gw check
# Runs just unit tests
gw test
# Runs just core tests
gw :src:core:test
## Coverage
# Generates code coverage report for the test task to build/reports/jacoco/test/html
gw jacocoTestReport
# Generate combined coverage report
gw jacocoReport
## Generate Javadocs
# Builds javadoc to build/docs/javadoc subfolder
gw javadoc
# Builds javadoc jar to build/libs/jorphan-javadoc.jar
gw javadocJar
## Site
# Creates preview of a site to build/docs/site
gw :src:dist:previewSite
# Builds and publishes site preview to a Git repository
gw :src:dist:pushPreviewSite
## Maven
# publishes Maven artifact to local repository
gw publishToMavenLocal
# Generate all pom files
# The resulting files are placed under build/publications folder
gw generatePom
## Release Artifacts
# Builds ZIP and TGZ artifacts for the release
gw :src:dist:assemble
## Signing
It is implemented via [gradle signing plugin](https://docs.gradle.org/5.2.1/userguide/signing_plugin.html),
so it is done automatically provided credentials are specified via
[signatory credentials](https://docs.gradle.org/5.2.1/userguide/signing_plugin.html#sec:signatory_credentials)
# Signs all the artifacts of the current module
# see results in build/**/*.asc
gw sign
> **Note:** signing is performed as a part of *release artifact build* so it will be
> performed with `gw :src:dist:assemble`
## Releasing
# Builds the project, pushes artifacts to svn://.../dev,
# stages artifacts to Nexus staging repository
gw prepareVote -Prc=1
> **Note:** The above step uses [an asf-like release environment](https://github.com/vlsi/asflike-release-environment),
> so it does not alter public repositories
# Prepare another release candidate
gw prepareVote -Prc=2 -Pasf
# Release staged artifacts to SVN and Nexus
gw publishDist -Prc=2 -Pasf