108 lines
3.8 KiB
Markdown
108 lines
3.8 KiB
Markdown
# Nacos
|
||
|
||
## Code Style
|
||
Nacos code style Comply with Alibaba Java Coding Guidelines and code style file customized by Nacos community.
|
||
|
||
Nacos的编码规范遵从于《阿里巴巴JAVA开发规约》和社区制定的Nacos代码风格文件。
|
||
|
||
### Guidelines
|
||
[Alibaba-Java-Coding-Guidelines](https://alibaba.github.io/Alibaba-Java-Coding-Guidelines/)
|
||
|
||
[阿里巴巴JAVA开发规约](https://github.com/alibaba/p3c/blob/master/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4Java%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C%EF%BC%88%E5%8D%8E%E5%B1%B1%E7%89%88%EF%BC%89.pdf)
|
||
|
||
[community issue](https://github.com/alibaba/nacos/issues/2992)
|
||
|
||
## Nacos Code Style File
|
||
|
||
### Idea IDE
|
||
|
||
Nacos Code Style file is `style/nacos-code-style-for-idea.xml` in source code. Developers can import it to Idea IDE and reformat code by IDE.
|
||
|
||
Nacos代码风格文件在源代码下的`style/nacos-code-style-for-idea.xml`文件中,开发者可以将其导入到Idea IDE中,并让IDE帮助您格式化代码。
|
||
|
||
#### Import Way/导入方式
|
||
|
||
```
|
||
Preferences/Settings --> Editor --> Code Style --> Schema --> Import Schema --> IntelliJ IDEA code style XML
|
||
```
|
||
|
||
### eclipse IDE
|
||
|
||
Volunteer wanted.
|
||
|
||
待补充。
|
||
|
||
## IDE Plugin Install(not necessary)
|
||
|
||
*It is not necessary to install, if you want to find a problem when you are coding.*
|
||
|
||
*不是必须安装,如果你需要在开发的时候实时发现问题的话,你需要安装。*
|
||
|
||
### idea IDE
|
||
|
||
#### checkstyle
|
||
[checkstyle-idea-install](https://plugins.jetbrains.com/plugin/1065-checkstyle-idea)
|
||
|
||
1. `Preferences/Settings --> Other Settings --> Checkstyle` OR `Preferences/Settings --> Tools --> Checkstyle`
|
||
2. Set checkstyle version at least 11.0.0 (required for Java 17 support) and scan scope `All resource(including tests)` in checkstyle plugin.
|
||
3. Import `style/NacosCheckStyle.xml` to checkstyle plugin.
|
||
4. Scan and check your modified code by plugin.
|
||
|
||
[checkstyle插件idea安装](https://plugins.jetbrains.com/plugin/1065-checkstyle-idea)
|
||
|
||
1. `Preferences/Settings --> Other Settings --> Checkstyle` 或者 `Preferences/Settings --> Tools --> Checkstyle`
|
||
2. 在checkstyle插件中设置checkstyle版本至少为11.0.0(Java 17支持所需),并将扫描作用域设置为`All resource(including tests)`
|
||
3. 导入源代码下`style/NacosCheckStyle.xml`文件到checkstyle插件。
|
||
4. 用checkstyle插件扫描你修改的代码。
|
||
|
||
#### SpotBugs
|
||
[spotbugs-idea-install](https://plugins.jetbrains.com/plugin/14014-spotbugs)
|
||
|
||
1. `Preferences/Settings --> Plugins` search "SpotBugs" and install.
|
||
2. Run SpotBugs analysis on your modified code to catch potential bugs before submitting.
|
||
|
||
[SpotBugs插件idea安装](https://plugins.jetbrains.com/plugin/14014-spotbugs)
|
||
|
||
1. `Preferences/Settings --> Plugins` 搜索 "SpotBugs" 并安装。
|
||
2. 在提交前对修改的代码运行 SpotBugs 分析,以提前发现潜在 bug。
|
||
|
||
### eclipse IDE
|
||
|
||
#### checkstyle
|
||
|
||
Volunteer wanted.
|
||
|
||
待补充。
|
||
|
||
## Automated Code Formatting (Spotless)
|
||
|
||
Nacos uses [Spotless Maven Plugin](https://github.com/diffplug/spotless/tree/main/plugin-maven) with Eclipse JDT Formatter for automated Java code formatting. The formatter configuration is at [`nacos-eclipse-formatter.xml`](nacos-eclipse-formatter.xml).
|
||
|
||
### Usage
|
||
|
||
```bash
|
||
# Auto-format all Java files
|
||
mvn spotless:apply
|
||
|
||
# Check formatting (same as CI, does not modify files)
|
||
mvn spotless:check
|
||
```
|
||
|
||
### Key Formatting Rules
|
||
|
||
| Rule | Value |
|
||
|------|-------|
|
||
| Indent | 4 spaces |
|
||
| Continuation indent | 8 spaces |
|
||
| Max line width | 100 characters |
|
||
| Keep indents on empty lines | Yes |
|
||
| Unused imports | Automatically removed |
|
||
|
||
### Excluded Paths
|
||
|
||
Generated and third-party code is excluded from formatting:
|
||
- `**/api/grpc/auto/**` — gRPC/Protobuf generated code
|
||
- `**/consistency/entity/**` — Generated entity code
|
||
- `**/istio/model/**` — Istio module
|
||
- `**/common/packagescan/**` — Spring Framework ported code
|