| CARVIEW |
Select Language
HTTP/2 301
date: Fri, 26 Dec 2025 06:28:19 GMT
content-type: text/html
location: https://docs.bluecave.io/languages/java/
cache-control: max-age=500, must-revalidate
server: cloudflare
cf-cache-status: DYNAMIC
nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
report-to: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=JoT8KGFbUcauOIxfsrmHEUSBWMzMB97KVCcsZmA771dBOkueDDVTQCsOeVR4icmTAMSrxVLJhZNs6MnC9WB%2F609iJSuk9EIaCqvxJpB5NN8%3D"}]}
cf-ray: 9b3e847348017aa2-BOM
alt-svc: h3=":443"; ma=86400
HTTP/1.1 301 Moved Permanently
Date: Fri, 26 Dec 2025 06:28:19 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: max-age=500, must-revalidate
location: https://docs.bluecave.io/languages/java/
Server: cloudflare
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=yjDPOZGb32iqir3PcXUDtrW%2FEOoFbmvjSPilyYmhUPYEW6T4MTa7DOtBwrANXKy8lFG8W8TS5iAEBOE%2FjX%2F8Qewm3CYazrS89Pn01ecTv%2BI%3D"}]}
CF-RAY: 9b3e8476d9ee8543-BOM
alt-svc: h3=":443"; ma=86400
HTTP/2 200
date: Fri, 26 Dec 2025 06:28:20 GMT
content-type: text/html
cache-control: max-age=500, must-revalidate
report-to: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=QJ%2Bn1be85yD%2BTn5%2FK9sFo70114P%2Bi0vstVrm93NHysJ1gzxkyd2tw48jdLgpSqjRqoiy0cl%2FW%2BiwSVFXp%2BdjS348AKTJjQTHTrMPcmMCDiA%3D"}]}
nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
last-modified: Tue, 25 Nov 2025 07:31:38 GMT
server: cloudflare
cf-cache-status: DYNAMIC
vary: accept-encoding
content-encoding: gzip
cf-ray: 9b3e84782c0a7aa2-BOM
alt-svc: h3=":443"; ma=86400
Integrating Java | Blue Cave Docs
Blue Cave Docs
Integrating Java
Gradle
Add the plugin to your build.gradle file, and configure JaCoCo to generate XML reports:
plugins {
...
id "io.bluecave.plugin" version "0.1.6"
id "jacoco" // If you haven't already added it
}
...
tasks {
test {
finalizedBy jacocoTestReport
}
jacocoTestReport {
dependsOn test
reports {
xml.required = true
}
}
}
If using Kotlin:
plugins {
...
id("io.bluecave.plugin") version "0.1.6"
}
You can now use the task bluecaveReport to analyze and report coverage to your Blue Cave project:
export BLUECAVE_TOKEN="<your project token>" # Please keep this a secret!
# The following is only required if running outside of GitHub Actions:
# export BLUECAVE_EXTRA_OPTS="-b <branch name, such as main> -c <commit hash to attribute this analysis to>"
# See https://docs.bluecave.io/ci/ for more information.
./gradlew bluecaveReport
Maven
Add the plugin to your pom.xml:
<build>
<plugins>
<plugin>
<groupId>io.bluecave</groupId>
<artifactId>bluecave-maven-plugin</artifactId>
<version>0.1.2</version>
</plugin>
<plugin> <!-- Add the JaCoCo plugin if it doesn't exist -->
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.11</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
You can now use bluecave:report after you run your tests to analyze and report coverage to your Blue Cave project:
export BLUECAVE_TOKEN="<your project token>" # Please keep this a secret!
# The following is only required if running outside of GitHub Actions:
# export BLUECAVE_EXTRA_OPTS="-b <branch name, such as main> -c <commit hash to attribute this analysis to>"
# See https://docs.bluecave.io/ci/ for more information.
./mvnw test
./mvnw bluecave:report
Bazel
Coming soon!