java-base-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>cn.yusiwen</groupId> <artifactId>java-base-parent</artifactId> <version>21</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.yusiwen</groupId> <artifactId>java-base-parent</artifactId> <version>21</version> <packaging>pom</packaging> <name>java-base-parent</name> <description>Parent pom for java projects</description> <url>https://github.com/yusiwen/java-base-parent</url> <inceptionYear>2021</inceptionYear> <licenses> <license> <name>The Apache Software License, Version 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> </license> </licenses> <developers> <developer> <id>yusiwen</id> <name>Siwen Yu</name> <email>yusiwen@gmail.com</email> </developer> </developers> <scm> <connection>scm:git:ssh://git@github.com/yusiwen/java-base-parent.git</connection> <developerConnection>scm:git:ssh://git@github.com/yusiwen/java-base-parent.git</developerConnection> <tag>v21</tag> <url>https://github.com/yusiwen/java-base-parent</url> </scm> <issueManagement> <system>Github</system> <url>https://github.com/yusiwen/java-base-parent/issues</url> </issueManagement> <ciManagement> <system>travis-ci</system> <url>https://travis-ci.org/yusiwen/java-base-parent</url> </ciManagement> <properties> <!-- Copyright --> <copyright>2021-2025</copyright> <!-- Maven minimum version --> <maven.min-version>3.6.3</maven.min-version> <!-- Maven date configuration --> <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format> <!-- Default JDK version --> <java.version>17</java.version> <java.release.version>17</java.release.version> <java.test.version>17</java.test.version> <java.test.release.version>17</java.test.release.version> <toolchain.jdk.version>[17,)</toolchain.jdk.version> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> <maven.compiler.testSource>${java.test.version}</maven.compiler.testSource> <maven.compiler.testTarget>${java.test.version}</maven.compiler.testTarget> <maven.compiler.release>${java.release.version}</maven.compiler.release> <maven.compiler.testRelease>${java.test.release.version}</maven.compiler.testRelease> <!-- Signature Settings --> <signature.artifact>java18</signature.artifact> <signature.version>1.0</signature.version> <!-- Default file encoding --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.resourceEncoding>UTF-8</project.build.resourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!-- Indent --> <indent.size>4</indent.size> <!-- Build --> <build.environment>dev</build.environment> <!-- OSGi configuration properties --> <osgi.symbolicName>${project.groupId}.${project.artifactId}</osgi.symbolicName> <osgi.export>${project.groupId}.*;version=${project.version};-noimport:=true</osgi.export> <osgi.import>*</osgi.import> <osgi.dynamicImport /> <osgi.private /> <!-- Docker build --> <docker.build.name>${project.groupId}.${project.artifactId}:${project.version}-${build.environment}</docker.build.name> <docker.image.skip>true</docker.image.skip> <!-- Maven plugins --> <animal-sniffer.plugin>1.24</animal-sniffer.plugin> <dependency-check-maven.version>12.1.3</dependency-check-maven.version> <directory-maven-plugin.version>1.0</directory-maven-plugin.version> <exec-maven-plugin.version>3.5.1</exec-maven-plugin.version> <maven-toolchains-plugin.version>3.2.0</maven-toolchains-plugin.version> <maven-compiler-plugin.version>3.14.0</maven-compiler-plugin.version> <maven-resources-plugin.version>3.3.1</maven-resources-plugin.version> <maven-assembly-plugin.version>3.7.1</maven-assembly-plugin.version> <maven-source-plugin.version>3.3.1</maven-source-plugin.version> <maven-javadoc-plugin.version>3.11.2</maven-javadoc-plugin.version> <maven-deploy-plugin.version>3.1.4</maven-deploy-plugin.version> <maven-gpg-plugin.version>3.2.7</maven-gpg-plugin.version> <maven-release-plugin.version>3.1.1</maven-release-plugin.version> <central-publishing-maven-plugin.version>0.7.0</central-publishing-maven-plugin.version> <maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version> <maven-install-plugin.version>3.1.4</maven-install-plugin.version> <maven-clean-plugin.version>3.5.0</maven-clean-plugin.version> <!-- checks --> <error-prone.version>2.38.0</error-prone.version> <modernizer.plugin>3.1.0</modernizer.plugin> <maven-checkstyle-plugin.version>3.6.0</maven-checkstyle-plugin.version> <!--checkstyle check插件 --> <checkstyle.version>10.25.0</checkstyle.version> <findsecbugs.version>1.14.0</findsecbugs.version> <sb-contrib.version>7.6.10</sb-contrib.version> <bug-pattern.version>1.5.0</bug-pattern.version> <spotbugs-maven-plugin.version>4.9.3.0</spotbugs-maven-plugin.version> <spotbugs.version>4.9.3</spotbugs.version> <properties-maven-plugin.version>1.0.0</properties-maven-plugin.version> <maven-pmd-plugin.version>3.21.2</maven-pmd-plugin.version> <p3c-pmd.version>2.2.1.0x</p3c-pmd.version> <build-helper-maven-plugin.version>3.6.1</build-helper-maven-plugin.version> <maven-build-helper.version>1.5.4</maven-build-helper.version> <jacoco.version>0.8.13</jacoco.version> <sonar-maven-plugin.version>5.1.0.4751</sonar-maven-plugin.version> <!-- test --> <surefire.plugin>3.5.3</surefire.plugin> <!-- site --> <doxia.version>2.0.0</doxia.version> <fluido.version>2.1.0</fluido.version> <site.plugin>3.21.0</site.plugin> <wagon-git.version>2.0.4</wagon-git.version> <!-- report --> <changelog.plugin>2.3</changelog.plugin> <changes.plugin>2.12.1</changes.plugin> <javancss.plugin>2.1</javancss.plugin> <jdepend.plugin>2.1</jdepend.plugin> <maven-jxr-plugin.version>3.6.0</maven-jxr-plugin.version> <project-info.plugin>3.9.0</project-info.plugin> <taglist.plugin>3.2.1</taglist.plugin> <versions.plugin>2.18.0</versions.plugin> <!-- build --> <antrun-plugin.version>3.1.0</antrun-plugin.version> <docker-maven-plugin.version>0.46.0</docker-maven-plugin.version> <git-commit.plugin>4.9.10</git-commit.plugin> <maven-jar-plugin.version>3.4.2</maven-jar-plugin.version> <maven-war-plugin.version>3.4.0</maven-war-plugin.version> <!-- format --> <formatter.plugin>2.26.0</formatter.plugin> <impsort.plugin>1.12.0</impsort.plugin> <sortpom.plugin>4.0.0</sortpom.plugin> <tidy.plugin>1.4.0</tidy.plugin> <whitespace.plugin>1.5.0</whitespace.plugin> <xml-format.plugin>4.1.0</xml-format.plugin> <rewrite.plugin>6.11.0</rewrite.plugin> <flatten.plugin>1.7.0</flatten.plugin> <!-- others --> <bnd.version>7.1.0</bnd.version> <bnd.plugin>7.1.0</bnd.plugin> <license.plugin>5.0.0</license.plugin> <license-git.version>5.0.0</license-git.version> <enforcer.plugin>3.5.0</enforcer.plugin> <flyway-maven-plugin.version>11.9.1</flyway-maven-plugin.version> <htmlcompressor.plugin>2.2.0</htmlcompressor.plugin> <htmlcompressor.version>2.0.2</htmlcompressor.version> <wagon.plugin>2.0.2</wagon.plugin> <wagon-ssh.version>3.5.3</wagon-ssh.version> <yuicompressor.plugin>1.5.1</yuicompressor.plugin> <yuicompressor.version>2.4.8</yuicompressor.version> <utility.version>1.0.0-SNAPSHOT</utility.version> <lombok.version>1.18.38</lombok.version> <!-- git --> <git-build-hook-plugin.version>3.5.0</git-build-hook-plugin.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-annotations</artifactId> <version>${spotbugs.version}</version> </dependency> <dependency> <groupId>org.gaul</groupId> <artifactId>modernizer-maven-annotations</artifactId> <version>${modernizer.plugin}</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-annotations</artifactId> </dependency> <dependency> <groupId>org.gaul</groupId> <artifactId>modernizer-maven-annotations</artifactId> </dependency> </dependencies> <build> <pluginManagement> <plugins> <plugin> <groupId>cn.yusiwen.maven.plugins</groupId> <artifactId>utility-maven-plugin</artifactId> <version>${utility.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>${maven-checkstyle-plugin.version}</version> <dependencies> <dependency> <groupId>com.puppycrawl.tools</groupId> <artifactId>checkstyle</artifactId> <version>${checkstyle.version}</version> </dependency> <dependency> <groupId>cn.yusiwen</groupId> <artifactId>maven-build-helper</artifactId> <version>${maven-build-helper.version}</version> </dependency> </dependencies> <executions> <execution> <id>checkstyle-validation</id> <goals> <goal>check</goal> </goals> <phase>compile</phase> <configuration> <violationSeverity>warn</violationSeverity> <!--suppress UnresolvedMavenProperty --> <configLocation>checkstyle.xml</configLocation> <includeTestSourceDirectory>false</includeTestSourceDirectory> <inputEncoding>UTF-8</inputEncoding> <consoleOutput>true</consoleOutput> <failOnViolation>true</failOnViolation> <failsOnError>true</failsOnError> <excludes>**/enums/*Enum.java,**/Launcher.java,**/*Application.java</excludes> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <version>${maven-pmd-plugin.version}</version> <configuration> <linkXRef>false</linkXRef> <aggregate>true</aggregate> <inputEncoding>${project.build.sourceEncoding}</inputEncoding> <targetJdk>${java.version}</targetJdk> <printFailingErrors>true</printFailingErrors> <failurePriority>2</failurePriority> <rulesets> <!--由checkstyle检查 <ruleset>rulesets/java/ali-comment.xml</ruleset>--> <ruleset>rulesets/java/ali-concurrent.xml</ruleset> <!--由checkstyle检查 <ruleset>rulesets/java/ali-constant.xml</ruleset>--> <ruleset>rulesets/java/ali-exception.xml</ruleset> <ruleset>rulesets/java/ali-flowcontrol.xml</ruleset> <ruleset>rulesets/java/ali-naming.xml</ruleset> <ruleset>rulesets/java/ali-oop.xml</ruleset> <ruleset>rulesets/java/ali-orm.xml</ruleset> <ruleset>rulesets/java/ali-other.xml</ruleset> <ruleset>rulesets/java/ali-set.xml</ruleset> </rulesets> </configuration> <dependencies> <dependency> <groupId>com.xenoamess.p3c</groupId> <artifactId>p3c-pmd</artifactId> <version>${p3c-pmd.version}</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>check</goal> </goals> <phase>compile</phase> </execution> </executions> </plugin> <!-- findbugs插件 --> <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> <version>${spotbugs-maven-plugin.version}</version> <configuration> <!-- 设置分析工作的等级,可以为Min、Default和Max --> <effort>Max</effort> <!-- Low、Medium和High (Low最严格) --> <threshold>Medium</threshold> <!--发现错误则中断构建--> <failOnError>true</failOnError> <!--不检查test代码 --> <includeTests>false</includeTests> <!--findbugs需要忽略的错误的配置文件--> <!--suppress UnresolvedMavenProperty --> <excludeFilterFile>findbugs-exclude-filter.xml</excludeFilterFile> <plugins> <plugin> <groupId>com.mebigfatguy.sb-contrib</groupId> <artifactId>sb-contrib</artifactId> <version>${sb-contrib.version}</version> </plugin> <plugin> <groupId>com.h3xstream.findsecbugs</groupId> <artifactId>findsecbugs-plugin</artifactId> <version>${findsecbugs.version}</version> </plugin> <plugin> <groupId>jp.skypencil.findbugs.slf4j</groupId> <artifactId>bug-pattern</artifactId> <version>${bug-pattern.version}</version> </plugin> </plugins> </configuration> <dependencies> <dependency> <groupId>cn.yusiwen</groupId> <artifactId>maven-build-helper</artifactId> <version>${maven-build-helper.version}</version> </dependency> </dependencies> <executions> <execution> <id>run-findbugs</id> <goals> <goal>check</goal> </goals> <!-- validate 阶段触发执行findbugs检查,比如执行 mvn clean package --> <phase>compile</phase> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>${maven-clean-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <version>${maven-install-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-toolchains-plugin</artifactId> <version>${maven-toolchains-plugin.version}</version> <executions> <execution> <goals> <goal>select-jdk-toolchain</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven-compiler-plugin.version}</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>${maven-resources-plugin.version}</version> <configuration> <encoding>${project.build.resourceEncoding}</encoding> <delimiters> <!-- 使用${*}作为变量分隔符 --> <delimiter>${*}</delimiter> </delimiters> <!--禁止使用默认: 默认delimiter包括 ${*}和@ --> <useDefaultDelimiters>false</useDefaultDelimiters> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${maven-javadoc-plugin.version}</version> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>${maven-source-plugin.version}</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>${exec-maven-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>${maven-gpg-plugin.version}</version> <executions> <execution> <id>sign-artifacts</id> <goals> <goal>sign</goal> </goals> <phase>verify</phase> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>${maven-deploy-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>${maven-release-plugin.version}</version> <configuration> <tagNameFormat>v@{project.version}</tagNameFormat> <scmCommentPrefix>release</scmCommentPrefix> <scmDevelopmentCommitComment>@{prefix}: prepare for next development iteration</scmDevelopmentCommitComment> <scmReleaseCommitComment>@{prefix}: release @{releaseLabel}</scmReleaseCommitComment> </configuration> </plugin> <plugin> <groupId>org.sonatype.central</groupId> <artifactId>central-publishing-maven-plugin</artifactId> <version>${central-publishing-maven-plugin.version}</version> <extensions>true</extensions> <configuration> <publishingServerId>central-portal</publishingServerId> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>${enforcer.plugin}</version> <configuration> <rules> <requireMavenVersion> <version>[${maven.min-version},)</version> </requireMavenVersion> </rules> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>${build-helper-maven-plugin.version}</version> <executions> <execution> <id>timestamp-property</id> <goals> <goal>timestamp-property</goal> </goals> <configuration> <name>current.time</name> <pattern>yyyyMMdd</pattern> <timeZone>GMT+8</timeZone> <locale>zh_CN</locale> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${surefire.plugin}</version> <configuration> <testFailureIgnore>true</testFailureIgnore> <includes> <include>**/*Test.java</include> </includes> </configuration> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${jacoco.version}</version> <configuration> <excludes> <exclude>**/po/**</exclude> <exclude>*/dto/**</exclude> <exclude>**/vo/**</exclude> <exclude>**/feign/**</exclude> <exclude>**/enums/**</exclude> <exclude>**/config/**</exclude> <exclude>**/utils/**</exclude> <exclude>**/domain/**</exclude> </excludes> <destFile>${project.build.directory}/coverage-reports/jacoco-unit.exec</destFile> <dataFile>${project.build.directory}/coverage-reports/jacoco-unit.exec</dataFile> <!-- rules里面指定覆盖规则 --> <rules> <rule implementation="org.jacoco.maven.RuleConfiguration"> <element>BUNDLE</element> <limits> <!-- 方法覆盖率到100% --> <limit implementation="org.jacoco.report.check.Limit"> <counter>METHOD</counter> <value>MISSEDCOUNT</value> <maximum>0</maximum> </limit> <!-- 指令覆盖率到90% --> <limit implementation="org.jacoco.report.check.Limit"> <counter>INSTRUCTION</counter> <value>COVEREDRATIO</value> <minimum>0.90</minimum> </limit> <!-- 行覆盖率到90% --> <limit implementation="org.jacoco.report.check.Limit"> <counter>LINE</counter> <value>COVEREDRATIO</value> <minimum>0.90</minimum> </limit> <!-- 指定类覆盖到100%,不能遗失任何类 --> <limit implementation="org.jacoco.report.check.Limit"> <counter>CLASS</counter> <value>MISSEDCOUNT</value> <maximum>0</maximum> </limit> </limits> </rule> </rules> </configuration> <executions> <execution> <id>jacoco-initialize</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>jacoco-site</id> <goals> <goal>report</goal> </goals> <phase>test</phase> </execution> </executions> </plugin> <plugin> <groupId>org.flywaydb</groupId> <artifactId>flyway-maven-plugin</artifactId> <version>${flyway-maven-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>${antrun-plugin.version}</version> </plugin> <plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>${docker-maven-plugin.version}</version> <configuration> <!--suppress UnresolvedMavenProperty --> <skip>${docker.image.skip}</skip> <images> <image> <!--suppress UnresolvedMavenProperty --> <name>${docker.build.name}</name> <build> <!--suppress UnresolvedMavenProperty --> <dockerFile>${docker.build.dockerfile}</dockerFile> <contextDir>${project.basedir}</contextDir> </build> </image> </images> </configuration> <executions> <execution> <id>docker</id> <goals> <goal>build</goal> </goals> <phase>package</phase> </execution> <execution> <id>registry</id> <goals> <goal>push</goal> </goals> <phase>deploy</phase> </execution> </executions> </plugin> <!-- Sonar --> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>${sonar-maven-plugin.version}</version> </plugin> <!-- OWASP Vulnerabilities check --> <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> <version>${dependency-check-maven.version}</version> <configuration> <!-- Disable .net analyzer --> <assemblyAnalyzerEnabled>false</assemblyAnalyzerEnabled> <nugetconfAnalyzerEnabled>false</nugetconfAnalyzerEnabled> <nuspecAnalyzerEnabled>false</nuspecAnalyzerEnabled> <!-- Disable node analyzer --> <nodeAnalyzerEnabled>false</nodeAnalyzerEnabled> <nodeAuditAnalyzerEnabled>false</nodeAuditAnalyzerEnabled> <!-- Disable python analyzer --> <pyDistributionAnalyzerEnabled>false</pyDistributionAnalyzerEnabled> <pyPackageAnalyzerEnabled>false</pyPackageAnalyzerEnabled> <pipAnalyzerEnabled>false</pipAnalyzerEnabled> <pipfileAnalyzerEnabled>false</pipfileAnalyzerEnabled> <!-- Disable ruby analyzer --> <rubygemsAnalyzerEnabled>false</rubygemsAnalyzerEnabled> <cmakeAnalyzerEnabled>false</cmakeAnalyzerEnabled> <autoconfAnalyzerEnabled>false</autoconfAnalyzerEnabled> <composerAnalyzerEnabled>false</composerAnalyzerEnabled> <cpanfileAnalyzerEnabled>false</cpanfileAnalyzerEnabled> <yarnAuditAnalyzerEnabled>false</yarnAuditAnalyzerEnabled> <pnpmAuditAnalyzerEnabled>false</pnpmAuditAnalyzerEnabled> </configuration> </plugin> <plugin> <groupId>org.gaul</groupId> <artifactId>modernizer-maven-plugin</artifactId> <version>${modernizer.plugin}</version> <configuration> <javaVersion>${maven.compiler.target}</javaVersion> </configuration> </plugin> <!-- Formatter --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tidy-maven-plugin</artifactId> <version>${tidy.plugin}</version> </plugin> <plugin> <groupId>net.revelc.code.formatter</groupId> <artifactId>formatter-maven-plugin</artifactId> <version>${formatter.plugin}</version> <configuration> <!--suppress UnresolvedMavenProperty --> <configFile>p3c-formatter-${indent.size}spaces.xml</configFile> </configuration> <dependencies> <dependency> <groupId>cn.yusiwen</groupId> <artifactId>maven-build-helper</artifactId> <version>${maven-build-helper.version}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>net.revelc.code</groupId> <artifactId>impsort-maven-plugin</artifactId> <version>${impsort.plugin}</version> <configuration> <groups>com,java,javax,lombok,mockit,net,org</groups> <staticGroups>java,*</staticGroups> <removeUnused>true</removeUnused> </configuration> </plugin> <plugin> <groupId>com.github.ekryd.sortpom</groupId> <artifactId>sortpom-maven-plugin</artifactId> <version>${sortpom.plugin}</version> <configuration> <predefinedSortOrder>recommended_2008_06</predefinedSortOrder> <createBackupFile>false</createBackupFile> <expandEmptyElements>false</expandEmptyElements> <keepBlankLines>true</keepBlankLines> <nrOfIndentSpace>${indent.size}</nrOfIndentSpace> <spaceBeforeCloseEmptyElement>true</spaceBeforeCloseEmptyElement> </configuration> </plugin> <plugin> <groupId>com.github.hazendaz.maven</groupId> <artifactId>whitespace-maven-plugin</artifactId> <version>${whitespace.plugin}</version> </plugin> <plugin> <groupId>au.com.acegi</groupId> <artifactId>xml-format-maven-plugin</artifactId> <version>${xml-format.plugin}</version> <configuration> <indentSize>${indent.size}</indentSize> <lineLength>120</lineLength> <excludes> <exclude>pom.xml</exclude> </excludes> </configuration> </plugin> <plugin> <groupId>org.openrewrite.maven</groupId> <artifactId>rewrite-maven-plugin</artifactId> <version>${rewrite.plugin}</version> <configuration> <activeRecipes> <recipe>org.openrewrite.java.RemoveUnusedImports</recipe> </activeRecipes> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>flatten-maven-plugin</artifactId> <version>${flatten.plugin}</version> <configuration> <flattenMode>oss</flattenMode> </configuration> </plugin> <plugin> <groupId>biz.aQute.bnd</groupId> <artifactId>bnd-maven-plugin</artifactId> <version>${bnd.plugin}</version> <configuration> <manifestPath>${project.build.directory}/osgi/MANIFEST.MF</manifestPath> <packagingTypes>jar,bundle,maven-plugin,war</packagingTypes> <bnd><![CDATA[ // 'nouses' stops the "uses" clauses being added to "Export-Package" manifest entry -nouses: true // 'removeheaders' Stop the JAVA_n_HOME variables from being treated as headers by Bnd if found in settings.xml (obsolete versions removed, if found, cleanup settings.xml) -removeheaders: JAVA_17_HOME,JAVA_21_HOME,JAVA_23_HOME,JAVA_24_HOME,JAVA_25_HOME Bundle-Developers: Bundle-DocURL: ${project.url} Bundle-SymbolicName: ${osgi.symbolicName} DynamicImport-Package: ${osgi.dynamicImport} Export-Package: ${osgi.export} Private-Package: ${osgi.private} Import-Package: ${osgi.import} ]]></bnd> </configuration> <dependencies> <dependency> <groupId>biz.aQute.bnd</groupId> <artifactId>biz.aQute.bndlib</artifactId> <version>${bnd.version}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> <version>${license.plugin}</version> <configuration> <!--suppress UnresolvedMavenProperty --> <header>${license.header}</header> <excludes> <exclude>**/*.lck</exclude> <exclude>**/*.log</exclude> <exclude>**/*maven-wrapper.properties</exclude> <exclude>**/*MavenWrapperDownloader.java</exclude> <exclude>.factorypath</exclude> <exclude>.gitattributes</exclude> <exclude>.gitignore</exclude> <exclude>.format</exclude> <exclude>.compress</exclude> <exclude>.error-prone</exclude> <exclude>LICENSE</exclude> <exclude>LICENSE_HEADER</exclude> <exclude>LICENSE.txt</exclude> <exclude>LICENSE.TXT</exclude> <exclude>license.txt</exclude> <exclude>mvnw</exclude> <exclude>mvnw.cmd</exclude> </excludes> </configuration> <dependencies> <dependency> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin-git</artifactId> <version>${license-git.version}</version> </dependency> </dependencies> </plugin> <!-- Wagon --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>wagon-maven-plugin</artifactId> <version>${wagon.plugin}</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>animal-sniffer-maven-plugin</artifactId> <version>${animal-sniffer.plugin}</version> <configuration> <signature> <groupId>org.codehaus.mojo.signature</groupId> <artifactId>${signature.artifact}</artifactId> <version>${signature.version}</version> </signature> </configuration> </plugin> <!-- Build Plugins --> <plugin> <groupId>pl.project13.maven</groupId> <artifactId>git-commit-id-plugin</artifactId> <version>${git-commit.plugin}</version> <configuration> <failOnNoGitDirectory>false</failOnNoGitDirectory> <!-- Fixes occassional issue in commit id plugin - see https://github.com/ktoso/maven-git-commit-id-plugin/issues/61 --> <gitDescribe> <always>true</always> </gitDescribe> </configuration> </plugin> <!-- Packaging types / tools --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>${maven-jar-plugin.version}</version> <configuration> <archive> <manifest> <addBuildEnvironmentEntries>false</addBuildEnvironmentEntries> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> </manifest> <manifestEntries> <Build-Time>${maven.build.timestamp}</Build-Time> <Copyright>${copyright}</Copyright> <!--suppress UnresolvedMavenProperty --> <Git-Revision>${git.commit.id}</Git-Revision> <Os-Name>${os.name}</Os-Name> <Os-Arch>${os.arch}</Os-Arch> <Os-Version>${os.version}</Os-Version> <X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK> <X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK> <X-Compile-Release-JDK>${maven.compiler.release}</X-Compile-Release-JDK> </manifestEntries> </archive> <skipIfEmpty>true</skipIfEmpty> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>${maven-assembly-plugin.version}</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <dependencies> <dependency> <groupId>cn.yusiwen</groupId> <artifactId>maven-build-helper</artifactId> <version>${maven-build-helper.version}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>${maven-war-plugin.version}</version> <configuration> <archive> <manifest> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> </manifest> <manifestEntries> <Build-Time>${maven.build.timestamp}</Build-Time> <Copyright>${copyright}</Copyright> <!--suppress UnresolvedMavenProperty --> <Git-Revision>${git.commit.id}</Git-Revision> <Os-Name>${os.name}</Os-Name> <Os-Arch>${os.arch}</Os-Arch> <Os-Version>${os.version}</Os-Version> <X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK> <X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK> </manifestEntries> </archive> </configuration> </plugin> <plugin> <groupId>com.github.hazendaz.maven</groupId> <artifactId>htmlcompressor-maven-plugin</artifactId> <version>${htmlcompressor.plugin}</version> <dependencies> <dependency> <groupId>com.github.hazendaz</groupId> <artifactId>htmlcompressor</artifactId> <version>${htmlcompressor.version}</version> </dependency> <dependency> <groupId>com.yahoo.platform.yui</groupId> <artifactId>yuicompressor</artifactId> <version>${yuicompressor.version}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>yuicompressor-maven-plugin</artifactId> <version>${yuicompressor.plugin}</version> <dependencies> <dependency> <groupId>com.yahoo.platform.yui</groupId> <artifactId>yuicompressor</artifactId> <version>${yuicompressor.version}</version> </dependency> </dependencies> </plugin> <!-- Site --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>${site.plugin}</version> <configuration> <archive> <manifest> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> </manifest> <manifestEntries> <Build-Time>${maven.build.timestamp}</Build-Time> <Copyright>${copyright}</Copyright> <!--suppress UnresolvedMavenProperty --> <Git-Revision>${git.commit.id}</Git-Revision> <Os-Name>${os.name}</Os-Name> <Os-Arch>${os.arch}</Os-Arch> <Os-Version>${os.version}</Os-Version> <X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK> <X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK> </manifestEntries> </archive> </configuration> <dependencies> <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-module-markdown</artifactId> <version>${doxia.version}</version> </dependency> <dependency> <groupId>net.trajano.wagon</groupId> <artifactId>wagon-git</artifactId> <version>${wagon-git.version}</version> </dependency> <dependency> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-ssh</artifactId> <version>${wagon-ssh.version}</version> </dependency> <!-- For reporting only of versions --> <dependency> <groupId>org.apache.maven.skins</groupId> <artifactId>maven-fluido-skin</artifactId> <version>${fluido.version}</version> </dependency> </dependencies> </plugin> <!-- Report Only --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>javancss-maven-plugin</artifactId> <version>${javancss.plugin}</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jdepend-maven-plugin</artifactId> <version>${jdepend.plugin}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-changelog-plugin</artifactId> <version>${changelog.plugin}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-changes-plugin</artifactId> <version>${changes.plugin}</version> <configuration> <githubAPIScheme>https</githubAPIScheme> <githubAPIPort>443</githubAPIPort> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jxr-plugin</artifactId> <version>${maven-jxr-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> <version>${project-info.plugin}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> <version>${surefire.plugin}</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>taglist-maven-plugin</artifactId> <version>${taglist.plugin}</version> <configuration> <tagListOptions> <tagClasses> <tagClass> <displayName>FIXME Work</displayName> <tags> <tag> <matchString>fixme</matchString> <matchType>ignoreCase</matchType> </tag> <tag> <matchString>@fixme</matchString> <matchType>ignoreCase</matchType> </tag> </tags> </tagClass> <tagClass> <displayName>Todo Work</displayName> <tags> <tag> <matchString>todo</matchString> <matchType>ignoreCase</matchType> </tag> <tag> <matchString>@todo</matchString> <matchType>ignoreCase</matchType> </tag> </tags> </tagClass> <tagClass> <displayName>Deprecated Work</displayName> <tags> <tag> <matchString>@deprecated</matchString> <matchType>ignoreCase</matchType> </tag> </tags> </tagClass> </tagClasses> </tagListOptions> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <version>${versions.plugin}</version> </plugin> <plugin> <groupId>com.rudikershaw.gitbuildhook</groupId> <artifactId>git-build-hook-maven-plugin</artifactId> <version>${git-build-hook-plugin.version}</version> <configuration> <installHooks> <commit-msg>hooks/commit-msg</commit-msg> <post-commit>hooks/post-commit</post-commit> </installHooks> </configuration> <dependencies> <dependency> <groupId>cn.yusiwen</groupId> <artifactId>maven-build-helper</artifactId> <version>${maven-build-helper.version}</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>install</goal> </goals> <phase>validate</phase> </execution> </executions> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-toolchains-plugin</artifactId> </plugin> <plugin> <groupId>org.commonjava.maven.plugins</groupId> <!-- 用来生成顶级模块的绝对路径properties,提供其他插件使用--> <artifactId>directory-maven-plugin</artifactId> <version>${directory-maven-plugin.version}</version> <executions> <execution> <id>directories</id> <goals> <!-- 顶级模块的绝对路径--> <goal>highest-basedir</goal> </goals> <phase>validate</phase> <configuration> <!-- 顶级模块的绝对路径properties--> <property>top.my.basedir</property> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> </plugin> <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-maven</id> <goals> <goal>enforce</goal> </goals> </execution> <execution> <id>enforce-clean</id> <goals> <goal>enforce</goal> </goals> <phase>pre-clean</phase> </execution> <execution> <id>enforce-site</id> <goals> <goal>enforce</goal> </goals> <phase>pre-site</phase> </execution> </executions> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.gaul</groupId> <artifactId>modernizer-maven-plugin</artifactId> <executions> <execution> <id>modernizer</id> <goals> <goal>modernizer</goal> </goals> <phase>verify</phase> </execution> </executions> </plugin> </plugins> <sourceDirectory>src/main/java</sourceDirectory> <extensions> <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-ssh</artifactId> <version>${wagon-ssh.version}</version> </extension> </extensions> </build> <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-changelog-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-changes-plugin</artifactId> <reportSets> <reportSet> <reports> <report>github-report</report> </reports> </reportSet> </reportSets> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jxr-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> </plugin> <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <reportSets> <reportSet> <reports> <!-- select non-aggregate reports --> <report>report</report> </reports> </reportSet> </reportSets> </plugin> <!-- This plugin will fail if any POM is marked as Byte Order Mark is UTF-8 (BOM). If this occurs, create a new POM and move the contents in order to fix. For reference, this was a problem with mybatis/mybatis-spring poms. --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>taglist-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>javancss-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jdepend-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> <reportSets> <reportSet> <reports> <report>aggregate</report> </reports> </reportSet> </reportSets> </plugin> </plugins> </reporting> <profiles> <profile> <id>jar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <docker.image.skip>true</docker.image.skip> </properties> </profile> <profile> <id>release</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> </plugin> <plugin> <groupId>org.sonatype.central</groupId> <artifactId>central-publishing-maven-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>docker</id> <properties> <docker.image.skip>false</docker.image.skip> </properties> </profile> <profile> <id>git-hook</id> <activation> <file> <exists>.git</exists> </file> </activation> <build> <plugins> <plugin> <groupId>com.rudikershaw.gitbuildhook</groupId> <artifactId>git-build-hook-maven-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>compression</id> <activation> <file> <exists>.compress</exists> </file> </activation> <build> <plugins> <plugin> <groupId>com.github.hazendaz.maven</groupId> <artifactId>htmlcompressor-maven-plugin</artifactId> <configuration> <compressCss>true</compressCss> <compressJavaScript>true</compressJavaScript> <javascriptHtmlSprite>false</javascriptHtmlSprite> <yuiJsNoMunge>true</yuiJsNoMunge> <removeIntertagSpaces>true</removeIntertagSpaces> <srcFolder>${project.basedir}/src/main/resources</srcFolder> <targetFolder>${project.basedir}/target/classes</targetFolder> <fileExt> <fileExt>html</fileExt> <fileExt>xhtml</fileExt> <fileExt>xml</fileExt> </fileExt> </configuration> <executions> <execution> <id>default-compile</id> <goals> <goal>html</goal> </goals> <phase>compile</phase> </execution> </executions> </plugin> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>yuicompressor-maven-plugin</artifactId> <configuration> <nomunge>true</nomunge> <nosuffix>true</nosuffix> <excludes> <exclude>**/*.min.js</exclude> <exclude>**/*.min.css</exclude> </excludes> </configuration> <executions> <execution> <id>default-compile</id> <goals> <goal>compress</goal> </goals> <phase>compile</phase> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>format</id> <activation> <file> <exists>.format</exists> </file> </activation> <build> <plugins> <plugin> <groupId>net.revelc.code.formatter</groupId> <artifactId>formatter-maven-plugin</artifactId> <executions> <execution> <goals> <goal>format</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>net.revelc.code</groupId> <artifactId>impsort-maven-plugin</artifactId> <executions> <execution> <goals> <goal>sort</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.openrewrite.maven</groupId> <artifactId>rewrite-maven-plugin</artifactId> <executions> <execution> <goals> <goal>run</goal> </goals> <phase>process-sources</phase> </execution> </executions> </plugin> <plugin> <groupId>com.github.ekryd.sortpom</groupId> <artifactId>sortpom-maven-plugin</artifactId> <executions> <execution> <goals> <goal>sort</goal> </goals> <phase>verify</phase> </execution> </executions> </plugin> <plugin> <groupId>com.github.hazendaz.maven</groupId> <artifactId>whitespace-maven-plugin</artifactId> <executions> <execution> <goals> <goal>trim</goal> </goals> <phase>process-sources</phase> </execution> </executions> </plugin> <plugin> <groupId>au.com.acegi</groupId> <artifactId>xml-format-maven-plugin</artifactId> <executions> <execution> <goals> <goal>xml-format</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>bundle</id> <activation> <activeByDefault>false</activeByDefault> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <goals> <goal>single</goal> </goals> <phase>package</phase> <configuration> <attach>true</attach> <appendAssemblyId>false</appendAssemblyId> <descriptorRefs> <descriptorRef>base-bundle</descriptorRef> </descriptorRefs> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>license</id> <activation> <file> <exists>LICENSE_HEADER</exists> </file> </activation> <properties> <license.header>LICENSE_HEADER</license.header> </properties> <build> <plugins> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> <executions> <execution> <goals> <goal>format</goal> </goals> <phase>compile</phase> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>sort</id> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tidy-maven-plugin</artifactId> <executions> <execution> <goals> <goal>pom</goal> </goals> <phase>verify</phase> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>error-prone-common</id> <activation> <file> <exists>.error-prone</exists> </file> </activation> <dependencies> <dependency> <groupId>com.google.errorprone</groupId> <artifactId>error_prone_annotations</artifactId> <version>${error-prone.version}</version> <scope>provided</scope> </dependency> </dependencies> </profile> <profile> <id>jdk8</id> <activation> <jdk>1.8</jdk> </activation> <properties> <checkstyle.version>9.3</checkstyle.version> <spotbugs-maven-plugin.version>4.8.6.6</spotbugs-maven-plugin.version> <formatter.plugin>2.16.0</formatter.plugin> <impsort.plugin>1.6.2</impsort.plugin> <flyway-maven-plugin.version>9.22.3</flyway-maven-plugin.version> <sonar-maven-plugin.version>3.11.0.3922</sonar-maven-plugin.version> <dependency-check-maven.version>10.0.4</dependency-check-maven.version> <license.plugin>4.6</license.plugin> <license-git.version>4.6</license-git.version> <htmlcompressor.plugin>1.7.3</htmlcompressor.plugin> </properties> </profile> <profile> <id>jdk8-error-prone</id> <activation> <jdk>1.8</jdk> <file> <exists>.error-prone</exists> </file> </activation> <properties> <!-- using github.com/google/error-prone-javac is required when running on JDK 8 --> <javac.version>9+181-r4173-1</javac.version> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <fork>true</fork> <compilerArgs combine.children="append"> <arg>-J-Xbootclasspath/p:${settings.localRepository}/com/google/errorprone/javac/${javac.version}/javac-${javac.version}.jar</arg> </compilerArgs> </configuration> <dependencies> <dependency> <groupId>com.google.errorprone</groupId> <artifactId>javac</artifactId> <version>${javac.version}</version> </dependency> </dependencies> </plugin> </plugins> </build> </profile> <profile> <id>jdk9+</id> <activation> <jdk>[9,)</jdk> </activation> <properties> <!-- JAXB --> <javax.activation.version>1.2.0</javax.activation.version> <jaxb.api.version>2.3.0</jaxb.api.version> </properties> <dependencies> <dependency> <groupId>com.sun.activation</groupId> <artifactId>javax.activation</artifactId> <version>${javax.activation.version}</version> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>${jaxb.api.version}</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>${jaxb.api.version}</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>${jaxb.api.version}</version> </dependency> </dependencies> </profile> <profile> <id>jdk9-error-prone</id> <activation> <jdk>[9,16)</jdk> <file> <exists>.error-prone</exists> </file> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <compilerArgs> <arg>-XDcompilePolicy=simple</arg> <arg>-Xplugin:ErrorProne</arg> </compilerArgs> <annotationProcessorPaths> <path> <groupId>com.google.errorprone</groupId> <artifactId>error_prone_core</artifactId> <version>${error-prone.version}</version> </path> <!-- Other annotation processors go here. If 'annotationProcessorPaths' is set, processors will no longer be discovered on the regular -classpath; see also 'Using Error Prone together with other annotation processors' below. --> </annotationProcessorPaths> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>jdk16-error-prone</id> <activation> <jdk>[16,)</jdk> <file> <exists>.error-prone</exists> </file> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <fork>true</fork> <compilerArgs> <arg>-XDcompilePolicy=simple</arg> <arg>-Xplugin:ErrorProne</arg> <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg> <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg> <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg> <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg> <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg> <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg> <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg> <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg> <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg> <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg> </compilerArgs> <annotationProcessorPaths> <path> <groupId>com.google.errorprone</groupId> <artifactId>error_prone_core</artifactId> <version>${error-prone.version}</version> </path> <!-- Other annotation processors go here. If 'annotationProcessorPaths' is set, processors will no longer be discovered on the regular -classpath; see also 'Using Error Prone together with other annotation processors' below. --> </annotationProcessorPaths> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>eclipse</id> <activation> <property> <name>m2e.version</name> </property> </activation> <build> <pluginManagement> <plugins> <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <versionRange>[${build-helper-maven-plugin.version},)</versionRange> <goals> <goal>validate</goal> </goals> </pluginExecutionFilter> </pluginExecution> <pluginExecution> <pluginExecutionFilter> <groupId>org.commonjava.maven.plugins</groupId> <artifactId>directory-maven-plugin</artifactId> <versionRange>[${directory-maven-plugin.version},)</versionRange> <goals> <goal>validate</goal> <goal>highest-basedir</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> <pluginExecution> <pluginExecutionFilter> <groupId>com.github.hazendaz.maven</groupId> <artifactId>htmlcompressor-maven-plugin</artifactId> <versionRange>[${htmlcompressor.plugin},)</versionRange> <goals> <goal>html</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> <pluginExecution> <pluginExecutionFilter> <groupId>net.alchim31.maven</groupId> <artifactId>yuicompressor-maven-plugin</artifactId> <versionRange>[${yuicompressor.plugin},)</versionRange> <goals> <goal>compress</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> <pluginExecution> <pluginExecutionFilter> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> <versionRange>[${spotbugs-maven-plugin.version},)</versionRange> <goals> <goal>check</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> <pluginExecution> <pluginExecutionFilter> <groupId>net.revelc.code.formatter</groupId> <artifactId>formatter-maven-plugin</artifactId> <versionRange>[${formatter.plugin},)</versionRange> <goals> <goal>format</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> <pluginExecution> <pluginExecutionFilter> <groupId>net.revelc.code</groupId> <artifactId>impsort-maven-plugin</artifactId> <versionRange>[${impsort.plugin},)</versionRange> <goals> <goal>sort</goal> </goals> </pluginExecutionFilter> <action> <execute> <runOnConfiguration>true</runOnConfiguration> <runOnIncremental>true</runOnIncremental> </execute> </action> </pluginExecution> <pluginExecution> <pluginExecutionFilter> <groupId>cn.yusiwen</groupId> <artifactId>whitespace-maven-plugin</artifactId> <versionRange>[${whitespace.plugin},)</versionRange> <goals> <goal>trim</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> <pluginExecution> <pluginExecutionFilter> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <versionRange>[${enforcer.plugin},)</versionRange> <goals> <goal>enforce</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement> </build> </profile> </profiles> </project>