Files
weiyu/starter/pom.xml
2024-12-15 22:06:38 +08:00

689 lines
22 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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>
<parent>
<groupId>com.bytedesk</groupId>
<artifactId>im</artifactId>
<version>${revision}</version>
</parent>
<groupId>com.bytedesk</groupId>
<artifactId>bytedesk-starter</artifactId>
<packaging>jar</packaging>
<name>bytedesk-starter</name>
<description>Start project for Bytedesk IM/CustomerService/AI</description>
<properties>
<spring-ai.version>1.0.0-SNAPSHOT</spring-ai.version>
</properties>
<dependencies>
<!-- webmvc -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<!--webflux-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<!-- sso/ OpenID Connect (OIDC) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-messaging</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- https://docs.spring.io/spring-data/rest/reference/index.html -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-artemis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>artemis-jakarta-server</artifactId>
<scope>runtime</scope>
</dependency>
<!-- support docker -->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-docker-compose -->
<!-- https://hub.docker.com/r/jackning/bytedesk -->
<!-- https://springdoc.cn/docker-compose-support-spring-boot/ -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-docker-compose</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
<!-- mysql driver -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<!-- postgresql driver -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<!-- h2 driver -->
<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<!-- oracle driver -->
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc11 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc11</artifactId>
<scope>runtime</scope>
</dependency>
<!-- //////////////Spring AI 模块////////////// -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-spring-boot-autoconfigure</artifactId>
</dependency>
<!-- https://docs.spring.io/spring-ai/reference/api/etl-pipeline.html -->
<!-- https://tika.apache.org/2.9.0/formats.html -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-tika-document-reader</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-pdf-document-reader</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-moonshot-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-zhipuai-spring-boot-starter</artifactId>
</dependency>
<!-- https://redis.io/docs/latest/develop/interact/search-and-query/ -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-redis-store-spring-boot-starter</artifactId>
</dependency>
<!-- ERROR: column cannot have more than 2000 dimensions for hnsw index -->
<!-- <dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-pgvector-store-spring-boot-starter</artifactId>
</dependency> -->
<!-- /////////////////////////////////////开源模块//////////////////////////////////////// -->
<!-- -->
<dependency>
<groupId>com.bytedesk</groupId>
<artifactId>bytedesk-module-core</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.bytedesk</groupId>
<artifactId>bytedesk-module-kbase</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.bytedesk</groupId>
<artifactId>bytedesk-module-ai</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.bytedesk</groupId>
<artifactId>bytedesk-module-team</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.bytedesk</groupId>
<artifactId>bytedesk-module-service</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.bytedesk</groupId>
<artifactId>bytedesk-module-ticket</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.bytedesk</groupId>
<artifactId>bytedesk-module-forum</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.bytedesk</groupId>
<artifactId>bytedesk-module-voc</artifactId>
<version>${revision}</version>
</dependency>
<!-- //////////////////////////////////第三方依赖/////////////////////////////////////////// -->
<!-- spring statemachine - 迁移到 cola statemachine -->
<!-- https://github.com/spring-projects/spring-statemachine -->
<!-- https://mvnrepository.com/artifact/org.springframework.statemachine/spring-statemachine-starter -->
<dependency>
<groupId>org.springframework.statemachine</groupId>
<artifactId>spring-statemachine-starter</artifactId>
<version>4.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.statemachine/spring-statemachine-data-jpa -->
<!-- <dependency>
<groupId>org.springframework.statemachine</groupId>
<artifactId>spring-statemachine-data-jpa</artifactId>
<version>4.0.0</version>
</dependency> -->
<!-- https://mvnrepository.com/artifact/org.springframework.statemachine/spring-statemachine-data-redis -->
<!-- <dependency>
<groupId>org.springframework.statemachine</groupId>
<artifactId>spring-statemachine-data-redis</artifactId>
<version>4.0.0</version>
</dependency> -->
<!-- 替换上面的 spring-statemachine https://mvnrepository.com/artifact/com.alibaba.cola/cola-component-statemachine -->
<dependency>
<groupId>com.alibaba.cola</groupId>
<artifactId>cola-component-statemachine</artifactId>
<version>5.0.0</version>
</dependency>
<!-- https://www.sofastack.tech/projects/sofa-boot/quick-start/ -->
<!-- https://mvnrepository.com/artifact/com.alipay.sofa/healthcheck-sofa-boot-starter -->
<!-- 4.x missing -->
<!-- <dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>healthcheck-sofa-boot-starter</artifactId>
</dependency> -->
<!-- https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2 -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.53</version>
</dependency>
<!-- for transforming LocalDateTime -->
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jsr310 -->
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.18.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-starter-webmvc-ui -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.6.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-security -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-security</artifactId>
<version>1.8.0</version>
</dependency>
<!-- https://github.com/codecentric/spring-boot-admin -->
<!-- https://docs.spring-boot-admin.com/current/server.html -->
<!-- <dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>3.2.0</version>
</dependency> -->
<!-- https://docs.spring-boot-admin.com/current/client.html -->
<!-- <dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>3.2.0</version>
</dependency> -->
<!-- https://mvnrepository.com/artifact/org.modelmapper/modelmapper -->
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>3.2.0</version>
</dependency>
<!-- 一级缓存 -->
<!-- https://mvnrepository.com/artifact/com.github.ben-manes.caffeine/caffeine -->
<!-- <version>3.1.8</version> -->
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.15.1</version>
</dependency>
<!-- ///////////////////////////////////////////////////////////////////////////// -->
<!-- https://mvnrepository.com/artifact/io.netty/netty-all -->
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.106.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<!-- <version>3.25.2</version> -->
<version>4.28.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java-util -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<!-- <version>3.25.2</version> -->
<version>4.28.2</version>
</dependency>
<!--
https://mvnrepository.com/artifact/com.googlecode.protobuf-java-format/protobuf-java-format -->
<dependency>
<groupId>com.googlecode.protobuf-java-format</groupId>
<artifactId>protobuf-java-format</artifactId>
<version>1.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<!-- https://wizardforcel.gitbooks.io/guava-tutorial/content/1.html -->
<!-- https://github.com/google/guava/wiki -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.3.1-jre</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<!-- <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.14.0</version>
</dependency> -->
<!-- 定时任务 -->
<!-- https://mvnrepository.com/artifact/com.xuxueli/xxl-job-core -->
<!-- <dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.4.1</version>
</dependency> -->
<!-- aliyun sms -->
<!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<!-- <version>4.6.4</version> -->
<version>4.5.13</version>
</dependency>
<!-- aliyun ecs send email -->
<!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-dm -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dm</artifactId>
<!-- <version>3.3.2</version> -->
<version>3.3.1</version>
</dependency>
<!-- export/import excel -->
<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>4.0.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-3-starter -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.23</version>
</dependency>
<!-- ///////////////////////////////////////////////////////////////////////////// -->
<!-- monitoring -->
<!-- https://mvnrepository.com/artifact/io.micrometer/micrometer-registry-prometheus -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<!-- apijson auto generate crud api -->
<!-- http://apijson.cn/doc/zh/ -->
<!-- https://jitpack.io/#Tencent/APIJSON/7.0.0 -->
<!-- <dependency>
<groupId>com.github.Tencent</groupId>
<artifactId>APIJSON</artifactId>
<version>7.0.0</version>
</dependency> -->
<!-- 配置文件敏感信息加密 https://github.com/ulisesbocchio/jasypt-spring-boot -->
<!-- <dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency> -->
<!-- 验证码 -->
<!-- https://mvnrepository.com/artifact/pro.fessional/kaptcha -->
<dependency>
<groupId>pro.fessional</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3.3</version>
</dependency>
<!-- 内存队列 https://search.maven.org/artifact/com.lmax/disruptor/4.0.0/jar -->
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>4.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>5.2.0</version>
</dependency>
<!-- redis search https://github.com/redis/lettucemod -->
<!-- https://mvnrepository.com/artifact/com.redis/lettucemod-spring -->
<!-- <dependency>
<groupId>com.redis</groupId>
<artifactId>lettucemod-spring</artifactId>
<version>4.1.0</version>
</dependency> -->
<!-- https://github.com/redis/redis-om-spring?tab=readme-ov-file -->
<!-- https://mvnrepository.com/artifact/com.redis.om/redis-om-spring -->
<dependency>
<groupId>com.redis.om</groupId>
<artifactId>redis-om-spring</artifactId>
<version>0.9.5</version>
</dependency>
<!-- jedis pool config -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<!-- validate mobile phone number format -->
<!-- https://github.com/google/libphonenumber/ -->
<!-- https://www.baeldung.com/java-libphonenumber -->
<!-- https://mvnrepository.com/artifact/com.googlecode.libphonenumber -->
<!-- libphonenumber用于校验手机号的正确性提供了getNumberTypeisNumberMatch getExampleNumber 等方法。 -->
<dependency>
<groupId>com.googlecode.libphonenumber</groupId>
<artifactId>libphonenumber</artifactId>
<version>8.13.51</version>
</dependency>
<!-- carrier用于获取手机号的供应商。通过初始化PhoneNumberToCarrierMapper 调用getNameForNumber可获取运营商信息。 -->
<!-- https://mvnrepository.com/artifact/com.googlecode.libphonenumber/carrier -->
<dependency>
<groupId>com.googlecode.libphonenumber</groupId>
<artifactId>carrier</artifactId>
<version>1.235</version>
</dependency>
<!-- geocoder用于获取手机号的归属地。通过初始化PhoneNumberOfflineGeocoder 调用getDescriptionForNumber方法可获取手机归属地 -->
<!-- https://mvnrepository.com/artifact/com.googlecode.libphonenumber/geocoder -->
<dependency>
<groupId>com.googlecode.libphonenumber</groupId>
<artifactId>geocoder</artifactId>
<version>2.245</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- devtools-热加载容易导致fastjson2类型转换失败暂时禁用吧 -->
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency> -->
<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-test -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<!-- https://spring.io/guides/gs/testing-restdocs/ -->
<!-- https://github.com/spring-guides/gs-testing-restdocs/blob/main/complete/pom.xml -->
<dependency>
<groupId>org.springframework.restdocs</groupId>
<artifactId>spring-restdocs-mockmvc</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>${spring-ai.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<!-- custom jar name, no version: bytedesk-starter.jar, default: ${project.artifactId}-${project.version} -->
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<!-- ip2region.xdb -->
<!-- 不需要编译的资源文件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xdb</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
<!-- tag::asciidoc[] -->
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>2.2.6</version>
<executions>
<execution>
<id>generate-docs</id>
<phase>prepare-package</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<backend>html</backend>
<doctype>book</doctype>
</configuration>
</execution>
</executions>
</plugin>
<!-- end::asciidoc[] -->
</plugins>
</build>
<!-- APIJSON 必须用到的托管平台 -->
<!-- <repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories> -->
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
</project>