<?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>
<!-- grouid:通常是根据公司或组织的网址来定义,如:com.ftss -->
<groupId>com.ftss</groupId>
<!-- artifactid:项目的id,就是项目的名称,如:"graces" -->
<artifactId>graces-pom</artifactId>
<!-- version:版本号,直接回车,默认是1.0-SNAPSHOT -->
<version>1.0</version>
<!-- name:用户描述项目的名称,无关紧要的东西,可选 -->
<name>graces-pom</name>
<!-- packaging:打包机制,如pom,jar,maven-plugin,ejb,war,ear,rar,par -->
<packaging>pom</packaging>
<!-- inceptionYear:项目开发年份可选 -->
<inceptionYear>2016-2020</inceptionYear>
<!-- description:项目简述 -->
<description>公司底层jar包版本、依赖、通用插件等管理</description>
<!-- 父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。坐标包括group ID,artifact ID和version。 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.6</version>
<!-- <version>${spring.boot.version}</version> -->
<!-- 默认值为../pom.xml 查找顺序:relativePath元素中的地址–本地仓库–远程仓库 设定一个空值将始终从仓库中获取,不从本地路径获取。 -->
<relativePath></relativePath>
</parent>
<!-- properties:全局变量属性 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<nexus.address>http://58.33.104.58:44085</nexus.address>
<chartset.UTF8>UTF-8</chartset.UTF8>
<java.version>1.8</java.version>
<!-- 是否忽略SpringBoot方式的可执行Jar包 jar.original -->
<springboot.jar.skip>true</springboot.jar.skip>
<!-- 是否忽略Deploy发布到私服,true: mvn deploy时将跳过该Jar包 -->
<mvn.deploy.skip>false</mvn.deploy.skip>
<!-- 是否跳过测试 -->
<maven.test.skip>true</maven.test.skip>
<!-- 是否生成doc文档 -->
<maven.javadoc.skip>true</maven.javadoc.skip>
<docker.skip.push>false</docker.skip.push>
<docker.skip.build>false</docker.skip.build>
<docker.image.prefix>com.ftss</docker.image.prefix>
<!-- docker-registry http://172.16.21.246:5000/v2/_catalog 172.16.21.246
docker私有仓库服务器 /etc/docker/daemon.json | -->
<registryUrl>172.16.21.246:5000</registryUrl>
<dockerHost>http://172.16.21.246:2375</dockerHost>
<spring.boot.version>2.4.6</spring.boot.version>
<spring.cloud.version>2020.0.3</spring.cloud.version>
<spring.cloud.alibaba.version>2021.1</spring.cloud.alibaba.version>
<!-- <org.mapstruct.version>1.3.1.Final</org.mapstruct.version> -->
<org.projectlombok.version>1.18.20</org.projectlombok.version>
<org.mapstruct.version>1.5.0.Beta1</org.mapstruct.version>
<lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version>
<mybatis-plus.version>3.4.3.4</mybatis-plus.version>
<spring_version>5.3.6</spring_version> <!-- 解决dubbo-bom 引入spring版本问题 -->
<log.path>/home/data/logs</log.path>
</properties>
<!-- properties:全局变量属性 -->
<!-- 项目的问题管理系统(Bugzilla, Jira, Scarab,或任何你喜欢的问题管理系统)的名称和URL,本例为 禅道 -->
<issueManagement>
<!-- 问题管理系统(例如jira)的名字, -->
<system>zentao</system>
<!-- 该项目使用的问题管理系统的URL -->
<url>http://zentao.graces.com/</url>
</issueManagement>
<!-- dependencyManagement:dependencyManagement元素。通过它元素来管理jar包的版本,让子项目中引用一个依赖而不用显示的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在这个dependencyManagement元素中指定的版本号。
在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。 在dependencyManagement下申明的dependencies,Maven并不会去实际下载所依赖的jar包,而是
在dependencyManagement中用一个Map记录了jar的三维坐标。 而被仅仅是被dependencies包裹的元素,Maven是会去仓库实际下载所需要的jar包的,而至于需要下载什么
版本的jar包就有两种判断途径: 1:如果dependencies里的dependency自己没有声明version元素,那么maven就 会倒dependencyManagement里面去找有没有对该artifactId和groupId进行过版本声明,如果有,就继承它,如果
没有就会报错,告诉你必须为dependency声明一个version 2:如果dependencies中的dependency声明了version,那么无论dependencyManagement中有无对该jar的version声明,都以dependency里的version为准。 -->
<dependencyManagement>
<dependencies>
<!-- Spring Boot Dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Spring Boot Dependencies -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-bom</artifactId>
<version>3.0.4</version>
<type>pom</type>
<scope>import</scope>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- <dependency> -->
<!-- <groupId>io.spring.platform</groupId> -->
<!-- <artifactId>platform-bom</artifactId> -->
<!-- <version>4.0.1.RELEASE</version> -->
<!-- <type>pom</type> -->
<!-- <scope>import</scope> -->
<!-- </dependency> -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>5.3.6</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>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-core</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!-- <dependency> -->
<!-- <groupId>org.mapstruct</groupId> -->
<!-- <artifactId>mapstruct-jdk8</artifactId> -->
<!-- <version>${org.mapstruct.version}</version> -->
<!-- </dependency> -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.3.7</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.4</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>5.8.4</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.9</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<artifactId>log4j</artifactId>
<groupId>log4j</groupId>
</exclusion>
<exclusion>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>3.2.1</version>
</dependency>
<!-- dubbo相关 end -->
<!-- 日志定义 -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
<version>1.7.25</version>
</dependency>
<dependency>
<artifactId>log4j</artifactId>
<groupId>log4j</groupId>
<version>1.2.17</version>
</dependency>
<dependency>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>3.0.10</version>
</dependency>
<dependency>
<groupId>org.logback-extensions</groupId>
<artifactId>logback-ext-spring</artifactId>
<version>0.1.5</version>
</dependency>
<!-- 日志定义 -->
<!-- http 相关 -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0-alpha-1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>commons-compiler</artifactId>
<version>3.0.8</version>
</dependency>
<!-- http 相关 -->
<!-- 校验类相关 -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.1.Final</version>
</dependency>
<!-- 校验类相关 -->
<!-- apache 工具类定义 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.1</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>20030211.134440</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>20041127.091804</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<!-- apache 工具类定义 -->
<dependency>
<groupId>com.caucho</groupId>
<artifactId>hessian</artifactId>
<version>4.0.51</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>5.4.0</version>
</dependency>
<!-- <dependency> -->
<!-- <groupId>org.mybatis.spring.boot</groupId> -->
<!-- <artifactId>mybatis-spring-boot-starter</artifactId> -->
<!-- <version>2.2.0</version> -->
<!-- </dependency> -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<!-- <dependency> -->
<!-- <groupId>com.github.miemiedev</groupId> -->
<!-- <artifactId>mybatis-paginator</artifactId> -->
<!-- <version>1.2.17</version> -->
<!-- </dependency> -->
<!-- Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!-- Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务 -->
<!-- skywalking jar -->
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>6.0.0-alpha</version>
</dependency>
<!-- skywalking jar -->
<dependency>
<groupId>org.csource</groupId>
<artifactId>fastdfs-client-java</artifactId>
<version>1.27-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>6.0.0-alpha</version>
</dependency>
<!-- skywalking jar -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>org.hashids</groupId>
<artifactId>hashids</artifactId>
<version>1.0.3</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- dependencyManagement -->
<build>
<!-- 发布环境打包配置 -->
<defaultGoal>compile</defaultGoal>
<plugins>
<!-- 指定maven编译的jdk版本,如果不指定,maven3默认用jdk 1.5 maven2默认用jdk1.3 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<!-- 字符集编码 -->
<encoding>${chartset.UTF8}</encoding>
<!-- 源代码使用的JDK版本 -->
<source>${java.version}</source>
<!-- 需要生成的目标class文件的编译版本 -->
<target>${java.version}</target>
<!-- 跳过测试 不但跳过单元测试的运行,也跳过测试代码的编译 -->
<skip>${maven.test.skip}</skip>
<showWarnings>true</showWarnings>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${org.projectlombok.version}</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>${lombok-mapstruct-binding.version}</version>
</path>
</annotationProcessorPaths>
<showWarnings>true</showWarnings>
<compilerArgs>
<arg>
-Amapstruct.suppressGeneratorTimestamp=true
</arg>
<arg>
-Amapstruct.suppressGeneratorVersionInfoComment=true
</arg>
<arg>
-Amapstruct.verbose=true
</arg>
</compilerArgs>
</configuration>
</plugin>
<!--忽略单元测试的 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- 跳过测试 -->
<skip>${maven.test.skip}</skip>
</configuration>
</plugin>
<!-- 忽略单元测试的 -->
<!-- Source attach plugin 源码打包 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<id>attach-sources</id>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Source attach plugin -->
<!-- 3.2.0版本有毒 maven-resources-plugin maven中默认只能读取resources文件夹下的资源,如果要读取其他路径下的资源文件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- maven-resources-plugin maven中默认只能读取resources文件夹下的资源,如果要读取其他路径下的资源文件 -->
<!-- javadoc attach plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<encoding>${chartset.UTF8}</encoding>
<aggregate>true</aggregate>
<charset>${chartset.UTF8}</charset>
<docencoding>${chartset.UTF8}</docencoding>
<skip>${maven.javadoc.skip}</skip>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
</execution>
</executions>
</plugin>
<!-- javadoc attach plugin -->
<plugin>
<groupId>org.springframework.boot</groupId>
<!-- 支持spring boot 命令构建 -->
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>${springboot.jar.skip}</skip><!-- false 生成jar.original -->
<fork>true</fork>
<addResources>true</addResources>
<!--fork : 如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart -->
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- maven 构建镜像配置 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<configuration>
<serverId>my-docker-registry</serverId>
<repository>spotify/foobar</repository>
<dockerHost>${dockerHost}</dockerHost>
<!-- ${docker.image.prefix} 是镜像的前缀 ${project.artifactId} 是镜像名字 ${project.version}
版本号,此处也用来当做镜像的版本号 -->
<imageName>${registryUrl}/${docker.image.prefix}/${project.artifactId}</imageName>
<!--指定镜像名称 仓库/镜像名:标签 -->
<!-- 是否跳过所有构建Docker镜像阶段 -->
<skipDocker>${docker.skip.build}</skipDocker>
<!-- 是否跳过Push阶段 -->
<skipDockerPush>${docker.skip.push}</skipDockerPush>
<forceTags>true</forceTags>
<!-- <retryPushTimeout>15</retryPushTimeout> -->
<pushImage>true</pushImage>
<!--覆盖相同标签镜像 -->
<imageTags>
<!-- <imageTag>${project.version}</imageTag> -->
<imageTag>latest</imageTag>
</imageTags>
<dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory>
<!-- 指定仓库地址 -->
<serverId>my-docker-registry</serverId>
<!--mvn setting.xml配置的那个id -->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- maven 构建镜像配置 -->
<!-- smart-doc 配置 配置放在需要的工程中 -->
<!-- <plugin> -->
<!-- <groupId>com.github.shalousun</groupId> -->
<!-- <artifactId>smart-doc-maven-plugin</artifactId> -->
<!-- <version>2.3.1</version> -->
<!-- <configuration> -->
<!-- 指定生成文档的使用的配置文件,配置文件放在自己的项目中 -->
<!-- <configFile>${smart.doc.config}</configFile> -->
<!-- 指定项目名称 -->
<!-- <projectName>${smart.doc.name}</projectName> -->
<!-- smart-doc实现自动分析依赖树加载第三方依赖的源码,如果一些框架依赖库加载不到导致报错,这时请使用excludes排除掉 -->
<!-- <excludes> -->
<!-- 格式为:groupId:artifactId;参考如下 -->
<!-- 也可以支持正则式如:com.alibaba:.* -->
<!-- <exclude>com.alibaba:fastjson</exclude> -->
<!-- </excludes> -->
<!-- 自1.0.8版本开始,插件提供includes支持,配置了includes后插件会按照用户配置加载而不是自动加载,因此使用时需要注意 -->
<!-- smart-doc能自动分析依赖树加载所有依赖源码,原则上会影响文档构建效率,因此你可以使用includes来让插件加载你配置的组件 -->
<!-- <includes> -->
<!-- 格式为:groupId:artifactId;参考如下 -->
<!-- 也可以支持正则式如:com.alibaba:.* -->
<!-- <include>com.ftss:graces-core</include> -->
<!-- </includes> -->
<!-- </configuration> -->
<!-- <executions> -->
<!-- <execution> -->
<!-- 如果不需要在执行编译时启动smart-doc,则将phase注释掉 -->
<!-- <phase>compile</phase> -->
<!-- <goals> -->
<!-- smart-doc提供了html、openapi、markdown等goal,可按需配置 -->
<!-- <goal>html</goal> -->
<!-- </goals> -->
<!-- </execution> -->
<!-- </executions> -->
<!-- </plugin> -->
<!-- smart-doc 配置 -->
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<!-- <include>**/*.properties</include> -->
<!-- <include>**/*.xml</include> -->
<!-- <include>**/*.yml</include> -->
<!-- <include>**/*.factories</include> -->
</includes>
<!-- 是否替换资源中的属性 -->
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
<include>**/*.factories</include>
<include>**/*.Filter</include>
<include>**/*.xlsx</include>
<include>**/*.txt</include>
</includes>
<!-- (*.xml、*.properties)当中的${...},比如${db.url},那么如果配置了db.url=aaa的话,在项目编译的时候,就会自动的把${db.url}替换为aaa -->
<filtering>true</filtering>
</resource>
</resources>
<!--单元测试时引用src/main/resources下的资源文件 如何test下面有同类型的文件,则以test的为准 -->
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
<testResource>
<directory>${project.basedir}/src/main/resources</directory>
</testResource>
</testResources>
<!-- 发布环境打包配置 -->
</build>
<!--distributionManagement 发布私服配置 maven的依赖管理是基于版本管理的,对于发布状态的artifact,如果版本号相同
,即使我们内部的镜像服务器上的组件比本地新,maven也不会主动下载的。但是,如果是基于快照版本,那么问题就自热而然的解决了maven中的仓库分为两种,
snapshot快照仓库和release发布仓库,义一个组件/模块为快照版本,只需要在pom文件中在该模块的版本号后加上-SNAPSHOT <id>snapshots</id>
必须于 setting.xml 文件中定义的server <id>snapshots</id> 一样 -->
<distributionManagement>
<snapshotRepository>
<id>snapshots</id>
<name>nexus-snapshots</name>
<url>${nexus.address}/repository/maven-snapshots/</url>
</snapshotRepository>
<repository>
<id>releases</id>
<name>nexus-releases</name>
<url>${nexus.address}/repository/maven-3rdparty/</url>
</repository><!-- repository标签只能有一个 -->
<!-- <repository> -->
<!-- <id>releases</id> -->
<!-- <name>nexus-releases</name> -->
<!-- <url>${nexus.address}/repository/maven-releases/</url> -->
<!-- </repository> -->
</distributionManagement>
<!--distributionManagement 发布环境配置 -->
<!-- 开发者信息 -->
<developers>
<developer>
<id>developer</id>
<name>yanggq</name>
<email>ftssyang@aliyun.com</email>
<roles>
<role>Project Manager</role>
</roles>
<timezone>+8</timezone>
</developer>
</developers>
<!-- 开发者信息 -->
</project>
<!-- -->