Microsphere Build is a Java Maven parent POM with common build settings, plugins configuration, etc, which is used for Microsphere Projects, like Microsphere Java, Microsphere Spring, etc.
Microsphere Build supports the following features:
- Language Support
- Plugins Management
- Profiles Management
- Project Settings
Microsphere Build supports the Maven project building on Java 8+ TLS and Java 17+ TLS.
- Maven JavaDoc Plugin
- Maven Release Plugin
- Maven Enforce Plugin
- Maven GPG Plugin
- Git Commit Id Plugin
- Nexus Maven Plugin
release
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)
<resources>
<resource>
<directory>src/main/java</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
Maven JavaDoc Plugin will be added the options -Xdoclint:none
.
Maven Compiler Plugin's property maven.compiler.release
references on the another property ${java.version}
.
Maven JavaDoc Plugin will use the configuration source
based on the property ${maven.compiler.source}
.
Maven Surefire Plugin will append the argument line
--illegal-access=permit
for accessing to internal classes
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.
The root project's pom.xml should set the parent as follows:
<parent>
<groupId>io.github.microsphere-projects</groupId>
<artifactId>microsphere-build</artifactId>
<version>0.1.0</version>
</parent>
The root project's pom.xml should set the parent as follows:
<parent>
<groupId>io.github.microsphere-projects</groupId>
<artifactId>microsphere-build</artifactId>
<version>0.1.1</version>
</parent>