<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>
  <parent>
    <groupId>org.beangle</groupId>
    <artifactId>beangle</artifactId>
    <version>28.2</version>
  </parent>
  <groupId>org.beangle</groupId>
  <artifactId>beangle-java</artifactId>
  <packaging>pom</packaging>
  <name>Beangle Java Parent</name>

  <properties>
    <mvn.jxr.version>3.1.1</mvn.jxr.version>
    <mvn.pmd.version>3.14.0</mvn.pmd.version>
    <mvn.cobertura.version>2.7</mvn.cobertura.version>
    <additionalparam>-Xdoclint:none</additionalparam>
  </properties>

  <dependencyManagement>
    <dependencies>
      <!--log-->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>${logback.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>${servletapi.version}</version>
        <scope>provided</scope>
      </dependency>
      <!--test-->
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>${mockito.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>${testng.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>
      <!-- jdbc driver -->
      <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>${h2.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-clean-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-install-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${mvn.javadoc.version}</version>
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <doclint>none</doclint>
          <javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
          <charset>UTF-8</charset>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
          </archive>
        </configuration>
      </plugin>

      <plugin>
        <groupId>com.mycila</groupId>
        <artifactId>license-maven-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.beangle</groupId>
        <artifactId>style-maven-plugin</artifactId>
        <version>${beangle.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>ws-check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
      </plugin>
    </plugins>
  </build>


  <reporting>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>${mvn.cobertura.version}</version>
        <configuration>
          <instrumentation>
            <excludes>
              <exclude>**/model/**/*.class</exclude>
            </excludes>
          </instrumentation>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>${mvn.site.version}</version>
        <configuration>
          <locales>zh_CN</locales>
          <outputEncoding>UTF-8</outputEncoding>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>${mvn.project.info.version}</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>${mvn.surefire.report.version}</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>${mvn.jxr.version}</version>
        <configuration>
          <aggregate>true</aggregate>
          <inputEncoding>UTF-8</inputEncoding>
          <outputEncoding>UTF-8</outputEncoding>
          <docTitle>Beangle ${project.version} Cross Reference</docTitle>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>${mvn.pmd.version}</version>
        <configuration>
          <rulesets>
            <ruleset>/rulesets/basic.xml</ruleset>
            <ruleset>/rulesets/imports.xml</ruleset>
            <ruleset>/rulesets/unusedcode.xml</ruleset>
            <ruleset>/rulesets/codesize.xml</ruleset>
            <ruleset>/rulesets/clone.xml</ruleset>
            <ruleset>/rulesets/coupling.xml</ruleset>
            <ruleset>/rulesets/strings.xml</ruleset>
            <!--<ruleset>/rulesets/naming.xml</ruleset>-->
            <ruleset>/rulesets/logging-java.xml</ruleset>
            <ruleset>/rulesets/logging-jakarta-commons.xml</ruleset>
            <!--<ruleset>/rulesets/optimizations.xml</ruleset>-->
            <ruleset>/rulesets/braces.xml</ruleset>
            <ruleset>/rulesets/design.xml</ruleset>
            <!--<ruleset>/rulesets/javabeans.xml</ruleset>-->
            <ruleset>/rulesets/strictexception.xml</ruleset>
            <!--<ruleset>/rulesets/controversial.xml</ruleset>
                <ruleset>/rulesets/finalizers.xml</ruleset>-->
          </rulesets>
          <reportSet>
            <reports>
              <report>pmd</report>
              <report>cpd</report>
            </reports>
          </reportSet>
          <linkXref>true</linkXref>
          <minimumTokens>100</minimumTokens>
          <targetJdk>11</targetJdk>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
</project>
