Java
Use a CI pipeline to build and test a Java application.
You can build and test a Java application using a Linux platform on Harness Cloud or a self-managed Kubernetes cluster build infrastructure.
This guide assumes you've created a Harness CI pipeline.
Install dependencies
Use Run steps to install dependencies in the build environment.
- step:
type: Run
name: build
identifier: build
spec:
connectorRef: YOUR_IMAGE_REGISTRY_CONNECTOR
image: maven:3.8-jdk-11
shell: Sh
command: |-
mvn clean package dependency:copy-dependencies
- step:
type: Run
name: check dependencies
identifier: check_dependencies
spec:
connectorRef: YOUR_IMAGE_REGISTRY_CONNECTOR
image: maven:3.8-jdk-11
shell: Sh
command: |-
mvn dependency-check:check -U -DskipTests
reports:
type: JUnit
spec:
paths:
- /harness/target/*.xmlCache dependencies
Cache your Java dependencies with Cache Intelligence.
Add caching.enabled.true to your stage.spec:
You can use built-in steps to:
Here's an example of a pipeline with Save Cache to S3 and Restore Cache from S3 steps.
Build and run tests
You can use Run or Test steps to run tests in CI pipelines.
This example uses two Run steps to build and test with Maven.
You must use the Test step for your unit tests if you want to leverage Harness' Test Intelligence feature.
Visualize test results
If you want to view test results in Harness, make sure your test commands produce reports in JUnit XML format and that your steps include the reports specification.
Test splitting
Harness CI supports test splitting (parallelism) for both Run and Test steps.
Specify version
Java is pre-installed on Hosted Cloud runners. For details about all available tools and versions, go to Platforms and image specifications.
If your application requires a specific Java version, add a Run step to install it.
Specify the desired Java Docker image tag in your steps. There is no need for a separate install step when using Docker.
Full pipeline examples
Here's a YAML example of a pipeline that:
Tests a Java code repo.
Builds and pushes an image to Docker Hub.
This pipeline uses Harness Cloud build infrastructure, Cache Intelligence, and Test Intelligence.
If you copy this example, replace the placeholder values with appropriate values for your Harness project, connector IDs, account/user names, and repo names.
Next steps
Now that you have created a pipeline that builds and tests a Java app, you could:
Create triggers to automatically run your pipeline.
Add steps to build and upload artifacts.
Add a step to build and push an image to a Docker registry.
Last updated
Was this helpful?