blob: d1507cc47a7edacb3a726ed279a4863806475e74 [file] [log] [blame] [view]
# Compiling project
This document will help you compile and build a project in your maven and set your IDE.
Prepare JDK 17 or 21.
* If you clone codes from https://github.com/apache/skywalking-java
```shell
git clone https://github.com/apache/skywalking-java.git
cd skywalking-java
./mvnw clean package -Pall
```
* If you download source codes tar from https://skywalking.apache.org/downloads/
```shell
./mvnw clean package
```
The agent binary package is generated in `skywalking-agent` folder.
Set **Generated Source Codes**(`grpc-java` and `java` folders in **apm-protocol/apm-network/target/generated-sources/protobuf**)
folders if you are using IntelliJ IDE.
# Building Docker images
After you have [compiled the project](#compiling-project) and have generated the `skywalking-agent` folder, you can
build Docker images. [`make docker`] builds the agent Docker images based on `alpine` image, `java8`, `java11` and `java 17`
images by default. If you want to only build part of the images, add suffix `.alpine` or `.java<x>` to the `make`
target, for example:
- Build Docker images based on alpine, Java 8 and Java 11.
```shell
make docker.alpine docker.java8 docker.java11
```
You can also customize the Docker registry and Docker image names by specifying the variable `HUB`, `NAME`.
- Set private Docker registry to `gcr.io/skywalking` and custom name to `sw-agent`.
```shell
make docker.alpine HUB=gcr.io/skywalking NAME=sw-agent
```
This will name the Docker image to `gcr.io/skywalking/sw-agent:latest-alpine`
If you want to push the Docker images, add suffix to the make target `docker.`, for example:
- Build and push images based on alpine, Java 8 and Java 11.
```shell
make docker.push.alpine docker.push.java8 docker.push.java11
```