parent icon indicating copy to clipboard operation
parent copied to clipboard

The MyBatis parent POM which has to be inherited by all MyBatis modules

MyBatis Parent

Java CI Maven central Sonatype Nexus (Snapshots) License

mybatis

MyBatis-Parent is the MyBatis parent POM which has to be inherited by all MyBatis modules.

Building

  • Builds require JDK 11 or better to build with and will continue to target JDK 8 runtimes.
  • Allowable JDKs to build with include 11, 17, 18, 19-ea, or 20-ea
  • Minimum maven version to build projects is 3.3.9
  • Uses reproducable builds

Configurations

  • checkstyle - Uses <checkstyle.config> property which can be independently overridden as needed
  • formatter - Uses <formatter.config> property which can be independently overridden as needed. Default spacing is 2 character spacing.
  • JPMS - Uses <module.name> property which needs overridden in every downstream module.
  • encoding - Uses UTF-8 by default which can be overridden through <project.build.sourceEncoding>, <project.build.resourceEncoding>, and <project.reporting.outputEncoding>.
  • compiler - Controlled through <java.version> and <java.release.version> setting source, target, and release with possibilty for split tests.
  • reproducable - Set <project.build.outputTimestamp to controll reproducable build timestamp, this will auto update during releases, it not overridden, it will use value from last parent release.

Depedencies

  • Asm 9.3
  • Mybatis Base Bundle 9
  • Bind api 2.3.3
  • Bnd 6.3.1
  • Build Tools 1.3.0
  • Checkstyle 10.3.1
  • Extra Enforcer Rules 1.6.1
  • Fluido 1.11.1
  • License 4.2.rc3
  • Wagon Git 2.0.3
  • Wagon 3.5.2

Plugins

  • Antrun 3.1.0
  • Assembly 3.4.2
  • Bundle 5.1.7
  • Changes 2.12.1
  • Checkstyle 3.1.2
  • Clean 3.2.0
  • Clirr 2.8
  • Compiler 3.10.1
  • Coveralls 4.4.1
  • Dependency 3.3.0
  • Deploy 3.0.0
  • Enforcer 3.1.0
  • Formatter 2.20.0
  • Git Commit 5.0.0
  • Gpgp 3.0.1
  • Impsort 1.7.0
  • Install 3.0.1
  • Jacoco 0.8.8
  • Jar 3.2.2
  • Javadoc 3.4.0
  • Jxr 3.2.0
  • License 4.2.rc3
  • Lifecycle 1.0.0
  • Modernizer 2.4.0
  • Pdf 1.6.0
  • Pmd 3.17.0
  • Project Info Reports 3.4.0
  • Release 3.0.0-M6
  • Resources 3.3.0
  • Scm 1.12.2
  • Shade 3.3.0
  • Site 3.12.0
  • Sortpom 3.2.0
  • Source 3.2.1
  • Spotbugs 4.7.1.1
  • Surefire 3.0.0-M7
  • Taglist 3.0.0
  • Versions 2.11.0
  • Whitespace 1.0.4

OSGI

  • <osgi.symbolicName> as ${project.groupId}.${project.artifactId}
  • <osgi.export> as ${project.groupId}.*;version=${project.version};-noimport:=true
  • <osgi.import> as *
  • <osgi.dynamicImport> as empty
  • <osgi.private> as empty

Tests

  • <excludedGroups> add slow test groups here and annotate classes similar to @Tag('groupName') whcih will auto enable on CI only

See more details in pom