0
点赞
收藏
分享

微信扫一扫

最强maven pom文件示例说明

<?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>

<!-- -->

举报

相关推荐

maven pom文件详解

maven的pom文件

maven 之 pom.xml文件

Maven Pom

Maven(pom)

Maven POM

0 条评论