coco-framework
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.github.patton174</groupId>
<artifactId>coco-framework</artifactId>
<version>2.0.1</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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.github.patton174</groupId>
<artifactId>coco-framework</artifactId>
<version>2.0.1</version>
<packaging>pom</packaging>
<name>Coco Framework</name>
<description>Spring Boot based framework skeleton for rapid web application development.</description>
<url>https://github.com/patton174/coco-framework</url>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>coco-framework</id>
<name>patton174</name>
<email>2037475020@qq.com</email>
</developer>
</developers>
<scm>
<connection>scm:git:https://github.com/patton174/coco-framework.git</connection>
<developerConnection>scm:git:ssh://git@github.com/patton174/coco-framework.git</developerConnection>
<url>https://github.com/patton174/coco-framework</url>
<tag>HEAD</tag>
</scm>
<modules>
<module>coco-build/coco-dependencies</module>
<module>coco-build/coco-parent</module>
<module>coco-foundation/coco-api</module>
<module>coco-foundation/coco-context</module>
<module>coco-foundation/coco-exception</module>
<module>coco-foundation/coco-feature-model</module>
<module>coco-foundation/coco-i18n</module>
<module>coco-foundation/coco-logging</module>
<module>coco-spring/coco-config</module>
<module>coco-spring/coco-spring-boot-autoconfigure</module>
<module>coco-spring/coco-spring-boot-starter</module>
<module>coco-features</module>
<module>coco-build/coco-maven-plugin</module>
<module>coco-support/coco-test</module>
</modules>
<properties>
<revision>1.0.0-SNAPSHOT</revision>
<java.version>17</java.version>
<spring-boot.version>4.1.0</spring-boot.version>
<mybatis-plus.version>3.5.16</mybatis-plus.version>
<maven.version>3.8.9</maven.version>
<maven-resources-plugin.version>3.3.1</maven-resources-plugin.version>
<maven-jar-plugin.version>3.4.2</maven-jar-plugin.version>
<maven-compiler-plugin.version>3.14.0</maven-compiler-plugin.version>
<maven-surefire-plugin.version>3.5.3</maven-surefire-plugin.version>
<maven-failsafe-plugin.version>3.5.3</maven-failsafe-plugin.version>
<maven-enforcer-plugin.version>3.6.2</maven-enforcer-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-gpg-plugin.version>3.2.8</maven-gpg-plugin.version>
<flatten-maven-plugin.version>1.7.3</flatten-maven-plugin.version>
<central-publishing-maven-plugin.version>0.11.0</central-publishing-maven-plugin.version>
<maven-plugin-plugin.version>3.13.1</maven-plugin-plugin.version>
<spotbugs-maven-plugin.version>4.8.6.5</spotbugs-maven-plugin.version>
<maven-checkstyle-plugin.version>3.6.0</maven-checkstyle-plugin.version>
<central.auto-publish>false</central.auto-publish>
<central.wait-until>VALIDATED</central.wait-until>
<coco.enforcer.skip>false</coco.enforcer.skip>
<project.build.outputTimestamp>2026-07-04T00:00:00Z</project.build.outputTimestamp>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-api</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-context</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-exception</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-i18n</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-logging</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-feature-runtime</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-config</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-feature-model</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-feature-web</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-feature-mybatis-plus</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-feature-audit</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-feature-security</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-feature-tenant</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-feature-data-permission</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-feature-openapi</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-feature-codegen</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-spring-boot-autoconfigure</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>coco-test</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot4-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser-4.9</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<release>${java.version}</release>
<parameters>true</parameters>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<useModulePath>false</useModulePath>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-failsafe-plugin.version}</version>
<configuration>
<failIfNoTests>false</failIfNoTests>
<useModulePath>false</useModulePath>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<docencoding>${project.reporting.outputEncoding}</docencoding>
<charset>${project.build.sourceEncoding}</charset>
<doclint>none</doclint>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven-gpg-plugin.version}</version>
<configuration>
<bestPractices>true</bestPractices>
<signer>bc</signer>
<keyEnvName>MAVEN_GPG_KEY</keyEnvName>
<passphraseEnvName>MAVEN_GPG_PASSPHRASE</passphraseEnvName>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>${flatten-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
</plugin>
<!--
Static analysis. No lifecycle executions are bound on purpose:
local `mvn install` never runs these, so dev/IDE builds stay
fast and never break on style. CI invokes the goals directly
(`mvn spotbugs:check` / `mvn checkstyle:check`) from
reusable-static-analysis.yml, where the soft-vs-hard gate is the
step-level continue-on-error toggle (Phase 1 soft, Phase 2 hard).
-->
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs-maven-plugin.version}</version>
<configuration>
<effort>Max</effort>
<threshold>Low</threshold>
<xmlOutput>true</xmlOutput>
<!--
Phase 1 runs soft-fail (continue-on-error). Phase 2
(when reusable-static-analysis.yml is flipped to
fail-on-error: true) should add a per-module
excludeFilterFile that skips generated sources
(Spring Boot repackage, Lombok, MapStruct, Q-classes).
Tracked as a Phase 2 follow-up.
-->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven-checkstyle-plugin.version}</version>
<configuration>
<!--
Falls back to the bundled sun_checks.xml when the named
file is not present in the module. Phase 1 is fine with
this default. Phase 2 should drop a project-local
google_checks.xml (or any stricter config) at the
module root and reference it here.
-->
<configLocation>google_checks.xml</configLocation>
<consoleOutput>true</consoleOutput>
<linkXRef>false</linkXRef>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-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-failsafe-plugin</artifactId>
<executions>
<execution>
<id>integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<configuration>
<skip>${coco.enforcer.skip}</skip>
</configuration>
<executions>
<execution>
<id>enforce-build-gates</id>
<phase>validate</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<banDuplicatePomDependencyVersions />
<dependencyConvergence>
<excludedScopes>
<excludedScope>provided</excludedScope>
<excludedScope>test</excludedScope>
</excludedScopes>
</dependencyConvergence>
<bannedDependencies>
<searchTransitive>false</searchTransitive>
<excludes>
<exclude>commons-logging:commons-logging</exclude>
<exclude>log4j:log4j</exclude>
<exclude>org.slf4j:log4j-over-slf4j</exclude>
<exclude>org.springframework.boot:spring-boot-starter-jetty</exclude>
<exclude>org.springframework.boot:spring-boot-starter-undertow</exclude>
</excludes>
<message>Coco release artifacts must avoid legacy logging bridges and non-default servlet containers.</message>
</bannedDependencies>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<configuration>
<flattenMode>resolveCiFriendliesOnly</flattenMode>
<updatePomFile>true</updatePomFile>
</configuration>
<executions>
<execution>
<id>flatten</id>
<phase>process-resources</phase>
<goals>
<goal>flatten</goal>
</goals>
</execution>
<execution>
<id>flatten-clean</id>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-release-version</id>
<phase>validate</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireReleaseVersion>
<message>Release profile requires a non-SNAPSHOT revision, for example -Drevision=1.0.0.</message>
</requireReleaseVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</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</publishingServerId>
<autoPublish>${central.auto-publish}</autoPublish>
<waitUntil>${central.wait-until}</waitUntil>
<deploymentName>${project.groupId}:${project.artifactId}:${project.version}</deploymentName>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>