Spring Cloud Alibaba
原创大约 9 分钟
Spring Cloud Alibaba是基于Spring Cloud构建的一站式微服务开发框架。
从整体上来说,其实Spring Cloud Alibaba是由三个部分组成的。
Spring Boot:用于开发单体应用的Spring框架。
Spring Cloud:基于Spring Boot的微服务开发框架。
Spring Cloud Alibaba:它又在Spring Cloud之上整合了常用的微服务治理组件,例如,Nacos和Sentinel。
在Spring Cloud2022.x
版本分支发布前,这三个组成部分之间的对应关系其实是比较乱的,尤其是在2.x
版本的时候,Spring Cloud采用的是项目代号制,整合起来很不方便。
但是在Spring Cloud2022.x
版本之后,这种整合的麻烦就少了很多了,只需要知道下面简单的对应关系就行了。
Spring Cloud Alibaba | Spring Cloud | Spring Boot |
---|---|---|
2022.x | 2022.0.0 | 3.0.x |
完整的对应关系可以看官网给出的版本说明。
下面的代码是之前一个老项目的pom.xml
文件,还能编译运行。如果可以的话,还是推荐使用Spring Cloud2022.x
及其之后的版本。
<?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>com.funcun.cloud</groupId>
<artifactId>funcun-cloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<description>基于spring cloud alibaba的微服务架构</description>
<modules>
<module>funcun-core</module>
<module>funcun-framework</module>
<module>funcun-mq</module>
<module>funcun-gateway</module>
<module>funcun-support</module>
<module>funcun-uaa</module>
<module>funcun-application</module>
<module>funcun-core/funcun-starter-oauth2</module>
</modules>
<properties>
<!-- 微服务基础包 -->
<java.version>8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<funcun.core.version>0.0.1-SNAPSHOT</funcun.core.version>
<spring.boot.version>2.7.0</spring.boot.version>
<spring.cloud.version>2021.0.2</spring.cloud.version>
<spring.cloud.alibaba.version>2021.0.1.0</spring.cloud.alibaba.version>
<!-- 编译打包工具 -->
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version>
<maven-jar-plugin.version>3.2.2</maven-jar-plugin.version>
<maven-site-plugin.version>3.11.0</maven-site-plugin.version>
<maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version>
<nexus-staging-maven-plugin.version>1.6.12</nexus-staging-maven-plugin.version>
<sonar.exclusions>funcun-admin/**/*, funcun-core/**/*</sonar.exclusions>
<docker-maven-plugin.version>1.2.2</docker-maven-plugin.version>
<docker.baseImage>openjdk:8-jre-alpine</docker.baseImage>
<docker.volumes>/tmp</docker.volumes>
<docker.image.prefix>192.168.2.1:8080/funcun-cloud</docker.image.prefix>
<docker.java.security.egd>-Djava.security.egd=file:/dev/./urandom</docker.java.security.egd>
<docker.java.opts>-Xms128m -Xmx128m</docker.java.opts>
<!-- nacos && dubbo -->
<dubbo.version>3.0.7</dubbo.version>
<nacos.client.version>2.1.0</nacos.client.version>
<!-- 数据库 -->
<mysql.connector.version>8.0.22</mysql.connector.version>
<oracle.connector.version>12.2.0.1</oracle.connector.version>
<postgresql.connector.version>42.3.3</postgresql.connector.version>
<druid.version>1.2.9</druid.version>
<mybatis.plus.version>3.5.1</mybatis.plus.version>
<mybaits.generator.version>3.4.1</mybaits.generator.version>
<dynamic-datasource.version>3.5.1</dynamic-datasource.version>
<!-- 分库分表 -->
<sharding-jdbc.version>4.1.1</sharding-jdbc.version>
<!-- 分布式技术支撑组件 -->
<seata.version>1.4.2</seata.version>
<elastic.version>[7.14.0,)</elastic.version>
<redisson.version>3.17.0</redisson.version>
<lettuce.version>6.1.6.RELEASE</lettuce.version>
<caffeine.version>3.0.6</caffeine.version>
<sentinel.version>1.8.3</sentinel.version>
<transmittable.version>2.12.2</transmittable.version>
<rocketmq.version>4.9.3</rocketmq.version>
<prometheus.version>1.8.5</prometheus.version>
<!-- apache commons -->
<commons-collections.version>3.2.2</commons-collections.version>
<commons-io.version>2.8.0</commons-io.version>
<!-- 认证安全 -->
<spring.security.version>2.6.6</spring.security.version>
<!-- 辅助工具包 -->
<dozer.version>6.5.0</dozer.version>
<swagger.version>2.10.5</swagger.version>
<swagger.models.version>1.6.2</swagger.models.version>
<knife4j.version>2.0.9</knife4j.version>
<jjwt.version>0.9.1</jjwt.version>
<easy-captcha.version>1.6.2</easy-captcha.version>
<jakarta.validation-api.version>2.0.2</jakarta.validation-api.version>
<jetcache.version>2.6.4</jetcache.version>
<fastjson.version>1.2.83</fastjson.version>
<gson.version>2.8.9</gson.version>
<spring-boot-admin.version>2.6.7</spring-boot-admin.version>
<poi.version>4.1.2</poi.version>
<easypoi.version>4.4.0</easypoi.version>
<ip2region.version>1.7.2</ip2region.version>
<justauth.version>1.16.5</justauth.version>
<justauth.springboot.version>1.3.3</justauth.springboot.version>
<okhttp.version>4.9.3</okhttp.version>
<jasypt.version>3.0.4</jasypt.version>
<retrofit.version>2.2.3</retrofit.version>
<guava.version>31.1-jre</guava.version>
<aws-java-sdk-s3.version>1.12.205</aws-java-sdk-s3.version>
<lombok.version>1.18.24</lombok.version>
<hutool.version>5.7.22</hutool.version>
<sun.jaxb.version>2.3.5</sun.jaxb.version>
<springdoc-openapi.version>1.6.8</springdoc-openapi.version>
</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>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring.cloud.alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- funcun-core -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-auth</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-cloud</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-common</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-database</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-dubbo</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-feign</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-file</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-gray</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-idempotent</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-jetcache</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-job</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-kafka</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-lock</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-log</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-mail</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-mongodb</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-mybatis</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-oauth2</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-oss</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-prometheus</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-rabbit</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-redis</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-rocketmq</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-rule</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-seata</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-security</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-sentinel</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-sms</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-springdoc</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-strategy</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-validator</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-starter-web</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<!-- funcun-framework -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-system-api</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>funcun-component-api</artifactId>
<version>${funcun.core.version}</version>
</dependency>
<!-- nacos -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>${nacos.client.version}</version>
</dependency>
<!-- dubbo -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>${dubbo.version}</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>${dubbo.version}</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
</dependency>
<!-- oracle -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>${oracle.connector.version}</version>
</dependency>
<!-- postgresql -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgresql.connector.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis.plus.version}</version>
</dependency>
<!-- druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-annotation</artifactId>
<version>${mybatis.plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>${mybatis.plus.version}</version>
</dependency>
<!-- 暂未升级至3.4.2版本,单独修改为上一个版本号 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybaits.generator.version}</version>
</dependency>
<!-- 动态数据源 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>${dynamic-datasource.version}</version>
</dependency>
<!-- seata -->
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
<version>${seata.version}</version>
</dependency>
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-all</artifactId>
<version>${seata.version}</version>
</dependency>
<!-- shardingsphere -->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>${sharding-jdbc.version}</version>
</dependency>
<!-- jetcache -->
<dependency>
<groupId>com.alicp.jetcache</groupId>
<artifactId>jetcache-starter-redis</artifactId>
<version>${jetcache.version}</version>
</dependency>
<dependency>
<groupId>com.alicp.jetcache</groupId>
<artifactId>jetcache-starter-redis-lettuce</artifactId>
<version>${jetcache.version}</version>
</dependency>
<dependency>
<groupId>com.alicp.jetcache</groupId>
<artifactId>jetcache-starter-redis-springdata</artifactId>
<version>${jetcache.version}</version>
</dependency>
<!-- redisson -->
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>${redisson.version}</version>
</dependency>
<!-- lettuce-core -->
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
<version>${lettuce.version}</version>
</dependency>
<!-- caffeine -->
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>${caffeine.version}</version>
</dependency>
<!-- elasticsearch -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>${elastic.version}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>${elastic.version}</version>
</dependency>
<!-- mq -->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>${rocketmq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-acl</artifactId>
<version>${rocketmq.version}</version>
</dependency>
<!-- jwt -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jjwt.version}</version>
</dependency>
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>${swagger.models.version}</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>${knife4j.version}</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-micro-spring-boot-starter</artifactId>
<version>${knife4j.version}</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-ui</artifactId>
<version>${knife4j.version}</version>
</dependency>
<!-- captcha -->
<dependency>
<groupId>com.github.whvcse</groupId>
<artifactId>easy-captcha</artifactId>
<version>${easy-captcha.version}</version>
</dependency>
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>${jakarta.validation-api.version}</version>
</dependency>
<!-- easypoi -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>${easypoi.version}</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>${easypoi.version}</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>${easypoi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${poi.version}</version>
</dependency>
<!-- commons -->
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>${commons-collections.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<!-- 对象转换 -->
<dependency>
<groupId>com.github.dozermapper</groupId>
<artifactId>dozer-core</artifactId>
<version>${dozer.version}</version>
</dependency>
<dependency>
<groupId>com.github.dozermapper</groupId>
<artifactId>dozer-spring4</artifactId>
<version>${dozer.version}</version>
</dependency>
<!-- 监控 -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>${prometheus.version}</version>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>${spring-boot-admin.version}</version>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server-ui</artifactId>
<version>${spring-boot-admin.version}</version>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>${spring-boot-admin.version}</version>
</dependency>
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>${jasypt.version}</version>
</dependency>
<dependency>
<groupId>com.github.lianjiatech</groupId>
<artifactId>retrofit-spring-boot-starter</artifactId>
<version>${retrofit.version}</version>
</dependency>
<!-- google json -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
<!-- guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<!-- spring doc -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>${springdoc-openapi.version}</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-webmvc-core</artifactId>
<version>${springdoc-openapi.version}</version>
</dependency>
<!-- 其他 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>transmittable-thread-local</artifactId>
<version>${transmittable.version}</version>
</dependency>
<dependency>
<groupId>org.lionsoul</groupId>
<artifactId>ip2region</artifactId>
<version>${ip2region.version}</version>
</dependency>
<dependency>
<groupId>me.zhyd.oauth</groupId>
<artifactId>JustAuth</artifactId>
<version>${justauth.version}</version>
</dependency>
<dependency>
<groupId>com.xkcoding.justauth</groupId>
<artifactId>justauth-spring-boot-starter</artifactId>
<version>${justauth.springboot.version}</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>${okhttp.version}</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>${aws-java-sdk-s3.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>${hutool.version}</version>
</dependency>
<!-- 解决多个模块引入不同版本提示冲突,临时用 -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.68</version>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
<version>${spring.security.version}</version>
</dependency>
<!-- 排除Log4j2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>${spring.boot.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>${sun.jaxb.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
<pluginManagement>
<plugins>
<!-- 打包插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- 打包生成docker镜像插件 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker-maven-plugin.version}</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<imageTags>
<imageTag>${project.version}</imageTag>
<imageTag>latest</imageTag>
</imageTags>
<forceTags>true</forceTags>
<baseImage>${docker.baseImage}</baseImage>
<volumes>${docker.volumes}</volumes>
<env>
<JAVA_OPTS>${docker.java.opts}</JAVA_OPTS>
</env>
<entryPoint>["sh","-c","java $JAVA_OPTS ${docker.java.security.egd} -jar /${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</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>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<!--
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven-site-plugin.version}</version>
</plugin>
-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker-maven-plugin.version}</version>
</plugin>
<!-- 自动发布
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>${nexus-staging-maven-plugin.version}</version>
<extensions>true</extensions>
<configuration>
<serverId>sonatype</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
-->
</plugins>
</build>
</project>
其实整个Spring Cloud Alibaba中必不可少的就是引入微服务基础包
中的那几个依赖,除此之外,其他都是可选的。
相对于其他语言来说,Java的Spring框架集成度非常高,不用自己再去整合其他的各种开源组件,不知道这算是优势还是劣势。
感谢支持
更多内容,请移步《超级个体》。