# microsphere-build **Repository Path**: microsphere-projects/microsphere-build ## Basic Information - **Project Name**: microsphere-build - **Description**: Common build settings, plugins configuration, etc. for Microsphere Projects - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-03 - **Last Updated**: 2026-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Microsphere Build [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/microsphere-projects/microsphere-build) [![Maven Build](https://github.com/microsphere-projects/microsphere-build/actions/workflows/maven-build.yml/badge.svg)](https://github.com/microsphere-projects/microsphere-build/actions/workflows/maven-build.yml) [![Codecov](https://codecov.io/gh/microsphere-projects/microsphere-build/branch/main/graph/badge.svg)](https://app.codecov.io/gh/microsphere-projects/microsphere-build) ![Maven](https://img.shields.io/maven-central/v/io.github.microsphere-projects/microsphere-build.svg) ![License](https://img.shields.io/github/license/microsphere-projects/microsphere-build.svg) ## 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.3) - [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.11.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.3) - [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.6) - [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.6) ##### Maven Profile `coverage` Plugins - [Maven JaCoCo Plugin](https://www.eclemma.org/jacoco/) (0.8.15) ##### 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.3.0 ```