#### What type of PR is this?
/kind cleanup
/area core
#### What this PR does / why we need it:
This PR totally refactor project structure for a better plugin development. Now we can maintain and publish api and platform modules at Halo application side, which will be references by plugins.
Currently, we can execute command `./gradlew clean publish` to publish api and platform modules into **local** Maven repository, so that we can refer these dependencies (`run.halo.tools.platform:plugin:2.4.0-SNAPSHOT` and `run.halo.app:api:2.4.0-SNAPSHOT`) in plugin projects.
I will make another pull request to publish api library and platforms into Maven central repository.
**Modules explanation**:
- API module contains common classes which might be used by plugins.
- Plugin Platform module contains dependency declarations of other plugin API modules.
- Application Platform module contains dependency declarations application module might uses.
If we want to build application only(exclude check and jar), we have to execute the command below:
```bash
./gradlew clean :application:build -x :application:check -x :application:jar
```
The executable Jar will be generated at folder `application/build/libs/`.
If we want to build a Docker image, we could execute the command below:
```bash
docker build -t johnniang/halo:project-structure .
# Test the Docker image
docker run -it --rm -p8090:8090 johnniang/halo:project-structure
```
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/2730
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
重构项目结构
```
* Bump versions of dependencies
* Bump spring boot to 2.5.8
Signed-off-by: John Niang <johnniang@fastmail.com>
* Revert dependency of bce sdk
Signed-off-by: John Niang <johnniang@fastmail.com>
* Update gradle wrapper version
* Update spring boot version to 2.5.0-M2
* Fix wrong const of temp_dir
* Refactor error controller
* Fix startup error due to theme not found
* Refine error controller handler
* Refine multipart resolver config
* Fix ThemeRepositoryImplTest error
* Fix freemarker not found error
* chore: change jetty to undertow.
* Remove useless throws
Co-authored-by: Ryan Wang <i@ryanc.cc>