with one click
fe-code-style
Fix FE (Java) code style issues using Checkstyle
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Fix FE (Java) code style issues using Checkstyle
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | fe-code-style |
| description | Fix FE (Java) code style issues using Checkstyle |
| compatibility | opencode |
Diagnose and fix Java code style issues in the FE module using the project's Checkstyle configuration.
Checkstyle is integrated into the Maven build and runs automatically during mvn validate. To check style only (without full compilation):
cd fe && mvn checkstyle:check -pl fe-core
Or as part of the normal build:
./build.sh --fe -j${DORIS_PARALLELISM}
If checkstyle fails, the build will fail with error messages showing the file, line number, and rule violated.
Checkstyle output looks like:
[ERROR] src/main/java/.../Foo.java:[42:5] (imports) UnusedImports: Unused import - java.util.List.
[ERROR] src/main/java/.../Bar.java:[10] (header) RegexpHeader: Line does not match expected header line...
Each error shows: [file]:[line:col] (category) RuleName: description.
| Violation | Fix |
|---|---|
RegexpHeader | Add/fix Apache License header at file top |
UnusedImports | Remove unused import statements |
LineLength (>120 chars) | Break long lines |
IllegalImport (shaded classes) | Use the non-shaded equivalent (see import-control.xml) |
FileTabCharacter | Replace tabs with spaces |
NewlineAtEndOfFile | Ensure file ends with a newline |
MergeConflictMarker | Resolve git merge conflicts |
After fixing, re-run checkstyle to confirm:
cd fe && mvn checkstyle:check -pl fe-core
| File | Purpose |
|---|---|
fe/check/checkstyle/checkstyle.xml | Main rules (license header, line length 120, encoding, imports) |
fe/check/checkstyle/suppressions.xml | Rule exclusions (test files, nereids, large files) |
fe/check/checkstyle/import-control.xml | Import restrictions (no shaded classes, no old logging APIs, no Lombok in nereids) |
fe/check/checkstyle/checkstyle-apache-header.txt | Apache License 2.0 header template |
build-support/IntelliJ-code-format.xml | IntelliJ formatter scheme (120 col, import organization) |
Some files/packages have relaxed rules (see suppressions.xml):
The following are excluded from checkstyle (see fe/pom.xml):
**/apache/doris/thrift/**/* (generated Thrift code)**/apache/parquet/**/* (generated Parquet code)org.apache.doris.thirdparty.* directlyorg.apache.commons.logging or java.util.loggingjava.time APIs insteadlombok is disallowed in org.apache.doris.nereids package| Problem | Solution |
|---|---|
Build fails on validate phase | Run mvn checkstyle:check -pl fe-core to see specific violations |
| Can't find checkstyle config | Ensure you're running from the fe/ directory |
| IntelliJ formatting differs | Import build-support/IntelliJ-code-format.xml via Settings → Editor → Code Style |
Review code with Doris-specific checklists
Fix BE (C++) code formatting issues using clang-format
Run clang-tidy on newly added/modified BE C++ code
Run Doris docker-based regression tests from a clean package