美文网首页设计方案
3,创建统一的依赖管理

3,创建统一的依赖管理

作者: 滔滔逐浪 | 来源:发表于2020-02-02 23:21 被阅读0次

    概述:

    温馨提示:
    当前Spring Cloud Alibaba 的0.2.1RELEASE 版本基于Spring Cloud Finchley(F)
    开发,故在做选择Spring boot 版本时不要使用2.1.0以及以上的版本(因为2.1.x版本
    必须使用Spring Cloud Greenwich)俗称G版,请使用官方Demo中使用的2.0.6.RELEASE,以免发生意想不到的问题(比如无法注册到服务器)。
    
    
    

    Spring Cloud Alibaba 项目都是基于Spring Cloud,而Spring Cloud项目都是基于Spring Cloud,而sprigCloud又都是基于Spring boot进行开发,并且都使用Maven做项目管理工具。在实际开发中,我们一般都会创建一个依赖管理项目作为Maven的 Parent 项目使用,这样我们可以极大的方便我们对jar 包版本进行统一管理。

    <?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>
    
       <parent>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-parent</artifactId>
           <version>2.0.6.RELEASE</version>
       </parent>
    
       <groupId>com.funtl</groupId>
       <artifactId>hello-spring-cloud-alibaba-dependencies</artifactId>
       <version>1.0.0-SNAPSHOT</version>
       <packaging>pom</packaging>
    
       <name>hello-spring-cloud-alibaba-dependencies</name>
       <url>http://www.funtl.com</url>
       <inceptionYear>2018-Now</inceptionYear>
    
       <properties>
           <!-- Environment Settings -->
           <java.version>1.8</java.version>
           <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
           <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    
           <!-- Spring Settings -->
           <spring-cloud.version>Finchley.SR2</spring-cloud.version>
           <spring-cloud-alibaba.version>0.2.1.RELEASE</spring-cloud-alibaba.version>
       </properties>
    
       <dependencyManagement>
           <dependencies>
               <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>org.springframework.cloud</groupId>
                   <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                   <version>${spring-cloud-alibaba.version}</version>
                   <type>pom</type>
                   <scope>import</scope>
               </dependency>
           </dependencies>
       </dependencyManagement>
    
       <build>
           <plugins>
               <!-- Compiler 插件, 设定 JDK 版本 -->
               <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-compiler-plugin</artifactId>
                   <configuration>
                       <showWarnings>true</showWarnings>
                   </configuration>
               </plugin>
    
               <!-- 打包 jar 文件时,配置 manifest 文件,加入 lib 包的 jar 依赖 -->
               <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-jar-plugin</artifactId>
                   <configuration>
                       <archive>
                           <addMavenDescriptor>false</addMavenDescriptor>
                       </archive>
                   </configuration>
                   <executions>
                       <execution>
                           <configuration>
                               <archive>
                                   <manifest>
                                       <!-- Add directory entries -->
                                       <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                                       <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                                       <addClasspath>true</addClasspath>
                                   </manifest>
                               </archive>
                           </configuration>
                       </execution>
                   </executions>
               </plugin>
    
               <!-- resource -->
               <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-resources-plugin</artifactId>
               </plugin>
    
               <!-- install -->
               <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-install-plugin</artifactId>
               </plugin>
    
               <!-- clean -->
               <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-clean-plugin</artifactId>
               </plugin>
    
               <!-- ant -->
               <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-antrun-plugin</artifactId>
               </plugin>
    
               <!-- dependency -->
               <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-dependency-plugin</artifactId>
               </plugin>
           </plugins>
    
           <pluginManagement>
               <plugins>
                   <!-- Java Document Generate -->
                   <plugin>
                       <groupId>org.apache.maven.plugins</groupId>
                       <artifactId>maven-javadoc-plugin</artifactId>
                       <executions>
                           <execution>
                               <phase>prepare-package</phase>
                               <goals>
                                   <goal>jar</goal>
                               </goals>
                           </execution>
                       </executions>
                   </plugin>
    
                   <!-- YUI Compressor (CSS/JS压缩) -->
                   <plugin>
                       <groupId>net.alchim31.maven</groupId>
                       <artifactId>yuicompressor-maven-plugin</artifactId>
                       <version>1.5.1</version>
                       <executions>
                           <execution>
                               <phase>prepare-package</phase>
                               <goals>
                                   <goal>compress</goal>
                               </goals>
                           </execution>
                       </executions>
                       <configuration>
                           <encoding>UTF-8</encoding>
                           <jswarn>false</jswarn>
                           <nosuffix>true</nosuffix>
                           <linebreakpos>30000</linebreakpos>
                           <force>true</force>
                           <includes>
                               <include>**/*.js</include>
                               <include>**/*.css</include>
                           </includes>
                           <excludes>
                               <exclude>**/*.min.js</exclude>
                               <exclude>**/*.min.css</exclude>
                           </excludes>
                       </configuration>
                   </plugin>
               </plugins>
           </pluginManagement>
    
           <!-- 资源文件配置 -->
           <resources>
               <resource>
                   <directory>src/main/java</directory>
                   <excludes>
                       <exclude>**/*.java</exclude>
                   </excludes>
               </resource>
               <resource>
                   <directory>src/main/resources</directory>
               </resource>
           </resources>
       </build>
    
       <repositories>
           <repository>
               <id>aliyun-repos</id>
               <name>Aliyun Repository</name>
               <url>http://maven.aliyun.com/nexus/content/groups/public</url>
               <releases>
                   <enabled>true</enabled>
               </releases>
               <snapshots>
                   <enabled>false</enabled>
               </snapshots>
           </repository>
    
           <repository>
               <id>sonatype-repos</id>
               <name>Sonatype Repository</name>
               <url>https://oss.sonatype.org/content/groups/public</url>
               <releases>
                   <enabled>true</enabled>
               </releases>
               <snapshots>
                   <enabled>false</enabled>
               </snapshots>
           </repository>
           <repository>
               <id>sonatype-repos-s</id>
               <name>Sonatype Repository</name>
               <url>https://oss.sonatype.org/content/repositories/snapshots</url>
               <releases>
                   <enabled>false</enabled>
               </releases>
               <snapshots>
                   <enabled>true</enabled>
               </snapshots>
           </repository>
    
           <repository>
               <id>spring-snapshots</id>
               <name>Spring Snapshots</name>
               <url>https://repo.spring.io/snapshot</url>
               <snapshots>
                   <enabled>true</enabled>
               </snapshots>
           </repository>
           <repository>
               <id>spring-milestones</id>
               <name>Spring Milestones</name>
               <url>https://repo.spring.io/milestone</url>
               <snapshots>
                   <enabled>false</enabled>
               </snapshots>
           </repository>
       </repositories>
    
       <pluginRepositories>
           <pluginRepository>
               <id>aliyun-repos</id>
               <name>Aliyun Repository</name>
               <url>http://maven.aliyun.com/nexus/content/groups/public</url>
               <releases>
                   <enabled>true</enabled>
               </releases>
               <snapshots>
                   <enabled>false</enabled>
               </snapshots>
           </pluginRepository>
       </pluginRepositories>
    </project>
    
    
    

    parent:集成了SPring boot 的Parent,标识我们是一个springboot
    工程
    package: pom ,表示该项目仅仅当做依赖项目,没有具体的实现代码
    spring-cloud-alibaba-dependencies: 在PROPERTIES 配置中
    预定义了版本号为0.2.1.RELEASE, 表示我们的Spring boot Alibaba对应的是 Spring cloud Finchley版本
    build:配置了该项目所需要的各种插件
    repositories: 配置项目下载依赖时的第三方库。
    依赖版本说明
    项目的最新版本是 0.2.1.RELEASE 和 0.1.1.RELEASE,版本 0.2.1.RELEASE 对应的是 Spring Cloud Finchley 版本,版本 0.1.1.RELEASE 对应的是 Spring Cloud Edgware 版本。
    与 Spring Cloud Netflix 的区别
    主要增加了 org.springframework.cloud:spring-cloud-alibaba-dependencies

    https://github.com/wangjin123456/SpringCloudAlibaba/tree/master/alibaba/hello-spring-cloud-alibaba-dependencies

    相关文章

      网友评论

        本文标题:3,创建统一的依赖管理

        本文链接:https://www.haomeiwen.com/subject/wuuxxhtx.html