https://github.com/microsphere-projects/microsphere-build
Common build settings, plugins configuration, etc. for Microsphere Projects
https://github.com/microsphere-projects/microsphere-build
build cicd cloud github-actions java java17 java8 maven microservices microsphere nexus
Last synced: 2 days ago
JSON representation
Common build settings, plugins configuration, etc. for Microsphere Projects
- Host: GitHub
- URL: https://github.com/microsphere-projects/microsphere-build
- Owner: microsphere-projects
- License: apache-2.0
- Created: 2022-09-04T03:07:30.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-04-04T07:05:56.000Z (2 days ago)
- Last Synced: 2026-04-04T08:26:31.551Z (2 days ago)
- Topics: build, cicd, cloud, github-actions, java, java17, java8, maven, microservices, microsphere, nexus
- Language: Java
- Homepage:
- Size: 366 KB
- Stars: 8
- Watchers: 0
- Forks: 30
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Microsphere Build
[](https://deepwiki.com/microsphere-projects/microsphere-build)
[](https://github.com/microsphere-projects/microsphere-build/actions/workflows/maven-build.yml)
[](https://app.codecov.io/gh/microsphere-projects/microsphere-build)


[](http://isitmaintained.com/project/microsphere-projects/microsphere-build "Average time to resolve an issue")
[](http://isitmaintained.com/project/microsphere-projects/microsphere-build "Percentage of issues still open")
## Introduction
Microsphere Build is a Java Maven parent POM with common build settings, plugins configuration, etc, which is used for
Microsphere Projects, like [Microsphere Java](https://github.com/microsphere-projects/microsphere-java),
[Microsphere Spring](https://github.com/microsphere-projects/microsphere-spring), etc.
## Features
Microsphere Build supports the following features:
- Language Support
- Plugins Management
- Profiles Management
- Project Settings
### Language Support
Microsphere Build supports the Maven project building on Java TLS versions:
- 8
- 11
- 17
- 21
- 25
### Plugins Management
#### Default Inherited Plugins
- [Maven Compiler Plugin](https://maven.apache.org/plugins/maven-compiler-plugin/) (3.15.0)
- [Maven Source Plugin](https://maven.apache.org/plugins/maven-source-plugin/) (3.4.0)
- [Flatten Maven Plugin](https://www.mojohaus.org/flatten-maven-plugin/) (1.7.3)
#### Profile-Specific Plugins
##### Maven Profile `publish` Plugins (Recommended, since 0.2.0)
- [Maven JavaDoc Plugin](https://maven.apache.org/plugins/maven-javadoc-plugin/) (3.12.0)
- [Maven Release Plugin](https://maven.apache.org/plugins/maven-release-plugin/) (3.3.1)
- [Maven Enforce Plugin](https://maven.apache.org/enforcer/maven-enforcer-plugin/) (3.6.2)
- [Maven GPG Plugin](https://maven.apache.org/plugins/maven-gpg-plugin/) (3.2.8)
- [Git Commit Id Plugin](https://github.com/git-commit-id/git-commit-id-maven-plugin) (4.9.10)
- [Central Publishing Maven Plugin](https://central.sonatype.com/artifact/org.sonatype.central/central-publishing-maven-plugin) (0.10.0)
> As of June 30, 2025 OSSRH has reached end of life and has been shut down. All OSSRH namespaces have been migrated to [Central Publisher Portal](https://central.sonatype.org/pages/ossrh-eol/).
>
> See [Publishing By Using the Maven Plugin](https://central.sonatype.org/publish/publish-portal-maven/).
##### Maven Profile `release` Plugins
- [Maven JavaDoc Plugin](https://maven.apache.org/plugins/maven-javadoc-plugin/) (3.12.0)
- [Maven Release Plugin](https://maven.apache.org/plugins/maven-release-plugin/) (3.3.1)
- [Maven Enforce Plugin](https://maven.apache.org/enforcer/maven-enforcer-plugin/) (3.6.2)
- [Maven GPG Plugin](https://maven.apache.org/plugins/maven-gpg-plugin/) (3.2.8)
- [Git Commit Id Plugin](https://github.com/git-commit-id/git-commit-id-maven-plugin) (4.9.10)
- [Nexus Maven Plugin](https://github.com/sonatype/nexus-maven-plugins) (1.7.0)
> If you want to release the Java artifacts using OSSRH staging API, please see [Publishing By Using the Portal OSSRH Staging API](https://central.sonatype.org/publish/publish-portal-ossrh-staging-api/).
##### Maven Profile `ci` Plugins
- [Sign Maven Plugin](https://www.simplify4u.org/sign-maven-plugin/) (1.1.0)
##### Maven Profile `test` Plugins
- [Maven Failsafe Plugin](https://maven.apache.org/surefire/maven-failsafe-plugin/) (3.5.5)
- [Maven Checkstyle Plugin](https://maven.apache.org/plugins/maven-checkstyle-plugin/) (3.6.0)
- [Maven Surefire Plugin](https://maven.apache.org/surefire/maven-surefire-plugin/) (3.5.5)
##### Maven Profile `coverage` Plugins
- [Maven JaCoCo Plugin](https://www.eclemma.org/jacoco/) (0.8.14)
##### Maven Profile `docs` Plugins
- [Asciidoctor Maven Plugin](https://github.com/asciidoctor/asciidoctor-maven-plugin) (3.2.0)
- [Docbkx Maven Plugin](https://github.com/mimil/docbkx-tools) (2.0.17)
- [Build Helper Maven Plugin](https://www.mojohaus.org/build-helper-maven-plugin/) (3.6.1)
### Profiles Management
- `publish` (Recommended, since 0.2.0)
- `release` (Legacy)
- `ci`
- `test`
- `coverage`
- `docs`
- `java8+` (activated by JDK version)
- `java9+` (activated by JDK version)
- `java11+` (activated by JDK version)
- `java9-15` (activated by JDK version)
- `java16+` (activated by JDK version)
- `java17+` (activated by JDK version)
### 2.4 Project Settings
#### 2.4.1 Default Settings
##### 2.4.1.1 Resources Settings
```xml
src/main/java
true
**/*.properties
**/*.xml
src/main/resources
true
**/*
```
#### Profiles Settings
##### Maven Profile `java8+` Settings
[Maven JavaDoc Plugin](https://maven.apache.org/plugins/maven-javadoc-plugin/) will be added the options `-Xdoclint:none`.
[Maven Checkstyle Plugin](https://maven.apache.org/plugins/maven-checkstyle-plugin/)'s version : 9.3
##### Maven Profile `java9+` Settings
[Maven Compiler Plugin](https://maven.apache.org/plugins/maven-compiler-plugin/)'s property `maven.compiler.release`
references on the another property `${java.version}`.
#### Maven Profile `java11+` Settings
[Maven JavaDoc Plugin](https://maven.apache.org/plugins/maven-javadoc-plugin/) will use the configuration `source`
based on the property `${maven.compiler.source}`.
[Maven Checkstyle Plugin](https://maven.apache.org/plugins/maven-checkstyle-plugin/)'s version : 10.26.1
#### Maven Profile `java9-15` Settings
[Maven Surefire Plugin](https://maven.apache.org/surefire/maven-surefire-plugin/) will append the argument line
`--illegal-access=permit` for accessing to internal classes
#### Maven Profile `java16+` Settings
[Maven Surefire Plugin](https://maven.apache.org/surefire/maven-surefire-plugin/) will append the argument line
`--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED` for accessing to
JDK modules' classes.
#### Maven Profile `java17+` Settings
[Maven Checkstyle Plugin](https://maven.apache.org/plugins/maven-checkstyle-plugin/)'s version : 13.4.0
## Usage
### Java 8+ Maven Project
The root project's pom.xml should set the parent as follows:
```xml
io.github.microsphere-projects
microsphere-build
0.2.3
```