원클릭으로
compile
// Build SkyWalking OAP server, run javadoc checks, and verify checkstyle. Use to validate changes before submitting a PR.
// Build SkyWalking OAP server, run javadoc checks, and verify checkstyle. Use to validate changes before submitting a PR.
Add a new monitoring target / layer to SkyWalking OAP. Orients you to the OAL / MAL / LAL / SpanListener / SegmentListener extension points, the UI template + submodule touchpoints, the docs set that must move together, and the cross-cutting traps that don't live in any one skill.
Verify, commit, and push changes on a PR branch. Runs pre-flight checks (compile, checkstyle, license headers) before every push. Also creates the PR if one doesn't exist yet.
Run SkyWalking E2E tests locally
Rebuild the SkyWalking distribution and OAP Docker image after source changes. Use before running e2e tests so the image reflects your code changes. Avoids the "image looks updated but runtime has stale jars" trap.
Download and inspect CI e2e test logs from GitHub Actions artifacts. Use when investigating e2e test failures in CI.
Generate bytecode classes from DSL scripts (MAL, OAL, LAL, Hierarchy). Runs the compiler and dumps .class files for inspection.
| name | compile |
| description | Build SkyWalking OAP server, run javadoc checks, and verify checkstyle. Use to validate changes before submitting a PR. |
| argument-hint | [all|backend|javadoc|checkstyle|module-name] |
Build the project and run static checks matching CI.
./mvnw wrapper)backend (default): Builds OAP server modulesui (default): Builds web applicationdist (default): Creates distribution packagesall: Builds everything including submodule initializationall or no argument — full CI build./mvnw clean flatten:flatten install javadoc:javadoc -B -q -Pall \
-Dmaven.test.skip \
-Dcheckstyle.skip \
-Dgpg.skip
backend — backend only (faster)./mvnw clean flatten:flatten package -Pbackend,dist -Dmaven.test.skip
javadoc — javadoc check onlyJavadoc requires delombok output, so install must run first:
./mvnw clean flatten:flatten install javadoc:javadoc -B -q -Pall \
-Dmaven.test.skip \
-Dcheckstyle.skip \
-Dgpg.skip
Running javadoc:javadoc alone without install will miss errors because ${delombok.output.dir} won't be populated.
checkstyle — checkstyle only./mvnw -B -q clean flatten:flatten checkstyle:check
./mvnw clean flatten:flatten package -pl oap-server/analyzer/<module-name> -Dmaven.test.skip
Maven prefixes all javadoc output with [ERROR], but the actual severity is in the message after the line number. Only lines containing error: fail the build; lines with warning: do not.
[ERROR] Foo.java:42: error: bad use of '>' ← ACTUAL ERROR (must fix)
[ERROR] Foo.java:50: warning: no @param for <T> ← WARNING (does not fail build)
| Error | Cause | Fix |
|---|---|---|
bad use of '>' | Bare > in javadoc HTML (e.g., -> in <pre> blocks) | Use {@code ->} or -> |
| heading out of sequence | Heading level skips the expected hierarchy | See heading rules below |
| reference not found | {@link Foo#bar()} with wrong signature | Match exact parameter types: {@link Foo#bar(ArgType)} |
Strict heading validation was introduced in JDK 13. JDK 11 does not enforce it, but JDK 17/21/25 do. Write headings correctly for forward compatibility:
| Javadoc location | Start heading at |
|---|---|
| Class, interface, enum, package, module | <h2> |
| Constructor, method, field | <h4> |
Standalone HTML files (doc-files/) | <h1> |
The generated javadoc page uses <h1> for the class name and <h3> for member sections (Methods, Fields, etc.), so class-level subsections must use <h2> and method-level subsections must use <h4> to maintain proper nesting.
CI uses JDK 11 on Linux. The dist-tar job runs:
./mvnw clean flatten:flatten install javadoc:javadoc -B -q -Pall \
-Dmaven.test.skip \
-Dcheckstyle.skip \
-Dgpg.skip
The code-style job runs:
./mvnw -B -q clean flatten:flatten checkstyle:check