pom.xml内容略讲

xiaoxiao2021-03-01  28

<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.deng</groupId>   <artifactId>showlan</artifactId>   <version>0.0.1-SNAPSHOT</version>   <packaging>war</packaging>      <name>showlan</name>   <url>http://maven.apache.org</url>      <!--  可以使用${标签名}来使用在<properties>标签里所定义的<标签>值</标签> -->    <properties>         <org.springframework-version>4.0.6.RELEASE</org.springframework-version>         <java.version>1.7</java.version>         <env>local</env>         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>         <skipTest>true</skipTest>   </properties>            <dependencies>           <!-- 主要提供HTTP请求相关的核心功能,还有远程调用如Hessian,WS等 -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-web</artifactId>             <version>${org.springframework-version}</version>             <scope>compile</scope>         </dependency>           <!-- spring中的一个模块,对jdbc api做了封装,简化了jdbc的代码(比如不用考虑获取连接和关闭连接了。) -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-jdbc</artifactId>             <version>${org.springframework-version}</version>             <scope>compile</scope>         </dependency>         <!-- web-mvc主要是一些view层的核心封装,提供各前端技术及标签支持 -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-webmvc</artifactId>             <version>${org.springframework-version}</version>             <scope>compile</scope>         </dependency>                  <!-- https://mvnrepository.com/artifact/org.springframework/spring-context              为Spring核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类, JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如             Velocity、FreeMarker、JasperReports              集成的类,以及校验Validation方面的相关类 -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-context</artifactId>             <version>${org.springframework-version}</version>             <scope>compile</scope>         </dependency>                  <!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support                  含支持UI模版(Velocity,FreeMarker,JasperReports),邮件服务,脚本服务(JRuby),缓存Cache(EHCache),                  任务计划Scheduling(uartz)方面的类。外部依赖spring-context, (spring-jdbc, Velocity, FreeMarker,              JasperReports, BSH, Groovy, JRuby, Quartz, EHCache) -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-context-support</artifactId>             <version>${org.springframework-version}</version>             <scope>compile</scope>         </dependency>                  <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx 事物控制 -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-tx</artifactId>             <version>${org.springframework-version}</version>             <scope>compile</scope>         </dependency>                  <!-- https://mvnrepository.com/artifact/org.springframework/spring-aop              AOP(Aspect Oriented Programming),即面向切面编程(也叫面向方面编程,面向方法编程)。              其主要作用是,在不修改源代码的情况下给某个或者一组操作添加额外的功能。             像日志记录,事务处理,权限控制等功能,都可以用AOP来“优雅”地实现,             使这些额外功能和真正的业务逻辑分离开来,软件的结构将更加清晰。             AOP是OOP的一个强有力的补充。 -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-aop</artifactId>             <version>${org.springframework-version}</version>             <scope>compile</scope>         </dependency>                  <!-- http://commons.apache.org/codec             在实际的应用中,我们经常需要对字符串进行编解码,Apache Commons家族中的Commons Codec就提供了一些公共的编解码实现,             比如Base64, Hex, MD5,Phonetic and URLs等等。 -->         <dependency>             <groupId>commons-codec</groupId>             <artifactId>commons-codec</artifactId>             <version>1.10</version>         </dependency>                  <!-- http://commons.apache.org/collections/download_collections.cgi             为Java标准的Collections API提供了相当好的补充。在此基础上对其常用的数据结构操作进行了很好的封装、抽象和补充。             保证性能的同时大大简化代码。 -->         <dependency>             <groupId>commons-collections</groupId>             <artifactId>commons-collections</artifactId>             <version>3.2.1</version>             <scope>compile</scope>         </dependency>                  <!-- 通过在bean的属性上打上annotation @NotNull @Max等注解来对上传数据进行验证的依赖。 -->         <dependency>             <groupId>org.hibernate</groupId>             <artifactId>hibernate-validator</artifactId>             <version>5.2.2.Final</version>             <scope>compile</scope>         </dependency>                  <!-- servlet的相关依赖,这是3.0之后的地址。 -->         <dependency>             <groupId>javax.servlet</groupId>             <artifactId>javax.servlet-api</artifactId>             <version>3.1.0</version>             <scope>compile</scope>         </dependency>                  <!-- 功能汇总:FileUtil:快速读写文件;文件,目录拷贝和删除,创建多级目录,计算checksum,比较文件内容。             IOUtil:关闭流,从流中读取数据,将数据写入流,流之间的数据拷贝。             目录和文件监听。 -->         <dependency>             <groupId>commons-io</groupId>             <artifactId>commons-io</artifactId>             <version>2.4</version>             <scope>compile</scope>         </dependency>                  <!-- 文件上传下载相关依赖 -->         <dependency>             <groupId>commons-fileupload</groupId>             <artifactId>commons-fileupload</artifactId>             <version>1.3.1</version>             <scope>compile</scope>         </dependency>                  <!-- 日志相关依赖 -->         <dependency>             <groupId>dom4j</groupId>             <artifactId>dom4j</artifactId>             <version>1.6.1</version>             <scope>compile</scope>         </dependency>                  <!-- Spring Data Redis是Spring Data大家族的一部分,它提供了通过简单的配置就可以使Spring应用程序操作Redis。             也提供了和仓库交互的低级和高级的抽象,以便用户不考虑基础设备的影响。 -->         <dependency>             <groupId>org.springframework.data</groupId>             <artifactId>spring-data-redis</artifactId>             <version>1.6.0.RELEASE</version>             <scope>compile</scope>         </dependency>                  <!-- 虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。             HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,             并且它支持 HTTP 协议最新的版本和建议。 -->         <dependency>             <groupId>org.apache.httpcomponents</groupId>             <artifactId>httpclient</artifactId>             <version>4.5.1</version>             <scope>compile</scope>             <!-- 当一个项目A依赖项目B,而项目B同时依赖项目C,如果项目A中因为各种原因不想引用项目C,在配置项目B的依赖时,可以排除对C的依赖。  -->             <exclusions>                 <exclusion>                     <artifactId>commons-logging</artifactId>                     <groupId>commons-logging</groupId>                 </exclusion>                 <exclusion>                     <artifactId>commons-codec</artifactId>                     <groupId>commons-codec</groupId>                 </exclusion>             </exclusions>         </dependency>                  <!-- httpcore是对http协议的基础封装的一套组件             可以用它来建立客户端,代理,服务端Http服务             支持同步异步服务             一些列支持阻塞和非阻塞IO模型 -->         <dependency>             <groupId>org.apache.httpcomponents</groupId>             <artifactId>httpcore</artifactId>             <version>4.4.3</version>             <scope>compile</scope>         </dependency>                  <!-- 基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。             它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 -->         <dependency>             <groupId>org.freemarker</groupId>             <artifactId>freemarker</artifactId>             <version>2.3.20</version>             <scope>compile</scope>         </dependency>                  <!-- 访问设备的类型检查 -->         <dependency>             <groupId>org.springframework.mobile</groupId>             <artifactId>spring-mobile-device</artifactId>             <version>1.1.2.RELEASE</version>             <scope>compile</scope>         </dependency>                  <!-- myBatis相关依赖 -->         <dependency>             <groupId>org.mybatis</groupId>             <artifactId>mybatis</artifactId>             <version>3.3.0</version>             <scope>compile</scope>         </dependency>                  <!-- MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。              使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。              这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。             而且它也会处理事务, 翻译 MyBatis 的异常到 Spring 的 DataAccessException 异常(数据访问异常,译者注)中。             最终,它并 不会依赖于 MyBatis,Spring 或 MyBatis-Spring 来构建应用程序代码。 -->         <dependency>             <groupId>org.mybatis</groupId>             <artifactId>mybatis-spring</artifactId>             <version>1.2.3</version>             <scope>compile</scope>         </dependency>                  <!-- Mybatis的一个插件,PageHelper,非常方便mybatis分页查询。 -->         <dependency>             <groupId>com.github.pagehelper</groupId>             <artifactId>pagehelper</artifactId>             <version>4.1.2</version>         </dependency>                  <!-- java对象和json相互转化,有jackson-core-asl、jackson-mapper-asl -->         <dependency>             <groupId>org.codehaus.jackson</groupId>             <artifactId>jackson-mapper-asl</artifactId>             <version>1.9.12</version>             <scope>compile</scope>         </dependency>                  <!-- 在ORM的概念大行其道之际,JavaEE平台也不得不做出适当调整,直接在平台层提供了对象/关系映射机制JPA,并结合了其重要的Entity JavaBean。 -->         <dependency>             <groupId>javax.persistence</groupId>             <artifactId>persistence-api</artifactId>             <version>1.0.2</version>             <scope>compile</scope>         </dependency>                  <!-- Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。 -->         <dependency>             <groupId>com.alibaba</groupId>             <artifactId>druid</artifactId>             <version>1.0.13</version>             <scope>compile</scope>         </dependency>                  <!-- 开发中常用的一些工具如:             StringUtils:该类主要提供对字符串的操作,对null是安全的!             ObjectUtils:主要是对null进行安全处理             SystemUtils:主要获取一些系统属性,例如工作目录等等。              DateUtils/CalendarUtils:主要提供了对日期的操作。             StopWatch:提供秒表的暂停,计时等功能!             qualsBuilder/HashCodeBuilder提供了方便的方法来覆盖equals() 和hashCode()方法             以Range结尾的类主要提供一些范围的操作,包括判断某些字符,数字等是否在这个范围以内             ArrayUtils 提供了数组的复制,查找,获取子数组,反转等功能-->         <dependency>             <groupId>org.apache.commons</groupId>             <artifactId>commons-lang3</artifactId>             <version>3.3.2</version>             <scope>compile</scope>         </dependency>                  <!-- aspectj框架支持的包 -->         <dependency>             <groupId>org.aspectj</groupId>             <artifactId>aspectjweaver</artifactId>             <version>1.8.2</version>             <scope>compile</scope>         </dependency>                  <!-- 数据库连接的相关jar包 -->         <dependency>             <groupId>mysql</groupId>             <artifactId>mysql-connector-java</artifactId>             <version>5.1.32</version>             <scope>compile</scope>         </dependency>                  <!-- 动态代理相关依赖 -->         <dependency>             <groupId>cglib</groupId>             <artifactId>cglib</artifactId>             <version>3.1</version>             <scope>compile</scope>         </dependency>                  <!-- 验证码相关依赖 -->         <dependency>             <groupId>com.github.napp-com</groupId>             <artifactId>kaptcha</artifactId>             <version>1.0.0</version>             <scope>compile</scope>         </dependency>                  <!-- JSON协议使用方便,越来越流行,JSON的处理器有很多,fastjson就是其中一种。             FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架。             FastJson速度快,无论序列化和反序列化,都是当之无愧的fast              功能强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)              零依赖(没有依赖其它任何类库) -->         <dependency>             <groupId>com.alibaba</groupId>             <artifactId>fastjson</artifactId>             <version>1.1.31</version>             <scope>compile</scope>         </dependency>                   <!-- Apache commons-pool2类库是对象池技术的一种具体实现,它的出现是为了解决频繁的创建和销毁对象带来的性能损耗问题,              原理就是建立一个对象池,池中预先生成了一些对象,需要对象的时候进行租借,用完后进行归还,对象不够时灵活的自动创建,              对象池满后提供参数控制是否阻塞还是非阻塞响应租借。 -->         <dependency>             <groupId>commons-pool</groupId>             <artifactId>commons-pool</artifactId>             <version>1.5.4</version>             <scope>compile</scope>         </dependency>                  <!-- Dozer是一个JavaBean映射工具库。             它支持简单的属性映射,复杂类型映射,双向映射,隐式显式的映射,以及递归映射。             它支持三种映射方式:注解、API、XML。 -->         <dependency>             <groupId>net.sf.dozer</groupId>             <artifactId>dozer</artifactId>             <version>5.3.2</version>             <scope>compile</scope>         </dependency>                  <!-- Guava是一种基于开源的Java库,其中包含谷歌正在由他们很多项目使用的很多核心库。             这个库是为了方便编码,并减少编码错误。             这个库提供用于集合,缓存,支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方法。 -->         <dependency>             <groupId>com.google.guava</groupId>             <artifactId>guava</artifactId>             <version>15.0</version>             <scope>compile</scope>         </dependency>                   <!-- Xstream是一种OXMapping 技术,是用来处理XML文件序列化的框架,              在将JavaBean序列化,或将XML文件反序列化的时候,不需要其它辅助类和映射文件,使得XML序列化不再繁索。              Xstream也可以将JavaBean序列化成Json或反序列化,使用非常方便。 -->         <dependency>             <groupId>com.thoughtworks.xstream</groupId>             <artifactId>xstream</artifactId>             <version>1.4.8</version>             <scope>compile</scope>         </dependency>                  <!-- 这里指的复杂对象(是指对象里面存在cycle引用)和json数据互转 -->         <dependency>             <groupId>com.fasterxml.jackson.core</groupId>             <artifactId>jackson-databind</artifactId>             <version>2.7.5</version>             <scope>compile</scope>         </dependency>                  <!-- 用来读取不同格式的Excel -->         <dependency>             <groupId>org.apache.poi</groupId>             <artifactId>poi-ooxml</artifactId>             <version>3.11-beta1</version>         </dependency>                  <!-- 单元测试相关依赖 -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-test</artifactId>             <version>4.0.6.RELEASE</version>             <scope>compile</scope>         </dependency>                  <!-- 为java提供的简单日志Facade。Facade:门面,更底层一点说就是接口。他允许用户以自己的喜好,在工程中通过slf4j接入不同的日志系统。             更直观一点,slf4j是个数据线,一端嵌入程序,另一端链接日志系统,从而实现将程序中的信息导入到日志系统并记录。  -->         <dependency>             <groupId>org.slf4j</groupId>             <artifactId>slf4j-api</artifactId>             <version>1.7.7</version>             <scope>compile</scope>         </dependency>                  <!-- 把jcl实现的日志输出重定向到 SLF4J -->         <dependency>             <groupId>org.slf4j</groupId>             <artifactId>jcl-over-slf4j</artifactId>             <version>1.7.5</version>             <scope>compile</scope>         </dependency>                  <!-- 将使用log4j日志框架输出的日志路由到SLF4J上 -->         <dependency>             <groupId>org.slf4j</groupId>             <artifactId>log4j-over-slf4j</artifactId>             <version>1.7.5</version>             <scope>compile</scope>         </dependency>                  <!-- 数据校验相关依赖 -->         <dependency>             <groupId>org.hibernate</groupId>             <artifactId>hibernate-validator</artifactId>             <version>5.4.1.Final</version>         </dependency>                  <!-- 在logback中只要有三个JAR包:Logback-classic.jar,logback-core.jar,logback-access.jar,             其中 logback.core是另外两个JAR包的基础,而logback-classic.jar包是log4j的改善版本,用于帮助打印日志,              而logback-access.jar包是通过互联网访问日志时需要的JAR包。 -->         <dependency>             <groupId>ch.qos.logback</groupId>             <artifactId>logback-classic</artifactId>             <version>1.0.13</version>             <scope>compile</scope>         </dependency>                  <!-- logback-ext-spring这个jar包是为了和spring一起使用的。 -->         <dependency>             <groupId>org.logback-extensions</groupId>             <artifactId>logback-ext-spring</artifactId>             <version>0.1.1</version>             <scope>compile</scope>         </dependency>                  <!-- 测试单元相关依赖 -->         <dependency>             <groupId>junit</groupId>             <artifactId>junit</artifactId>             <version>4.11</version>             <scope>compile</scope>         </dependency>                  <!-- Mockito是mocking框架,它让你用简洁的API做测试。 -->         <dependency>             <groupId>org.mockito</groupId>             <artifactId>mockito-all</artifactId>             <version>1.9.5</version>             <scope>test</scope>         </dependency>                  <!-- 在项目中使用Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写。 -->         <dependency>             <groupId>org.projectlombok</groupId>             <artifactId>lombok</artifactId>             <version>1.16.8</version>             <scope>provided</scope>         </dependency>                  <!--PDF操作-->         <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->         <dependency>             <groupId>com.itextpdf</groupId>             <artifactId>itextpdf</artifactId>             <version>5.2.1</version>         </dependency>

        <!--快捷通 支付渠道 依赖JAR包-公共包-->         <dependency>             <groupId>com.google.code.gson</groupId>             <artifactId>gson</artifactId>             <version>1.7.1</version>         </dependency>         <dependency>             <groupId>org.bouncycastle</groupId>             <artifactId>bcprov-jdk15</artifactId>             <version> 1.45</version>         </dependency>         <dependency>             <groupId>org.bouncycastle</groupId>             <artifactId>bcmail-jdk15</artifactId>             <version> 1.45</version>         </dependency>                  <!--快捷通 支付渠道 依赖JAR包-快捷通提供的第三方JAR包,需要导入本地Maven仓库-->         <dependency>             <groupId>com.biz.kjt</groupId>             <artifactId>gateway-common-0.0.1-SNAPSHOT</artifactId>             <version>1.0</version>             <scope>compile</scope>         </dependency>         <dependency>             <groupId>com.biz.kjt</groupId>             <artifactId>gateway-common-0.0.1-SNAPSHOT-sources</artifactId>             <version>1.0</version>             <scope>compile</scope>         </dependency>         <dependency>             <groupId>com.biz.kjt</groupId>             <artifactId>gateway-domain-0.0.1-SNAPSHOT</artifactId>             <version>1.0</version>             <scope>compile</scope>         </dependency>         <dependency>             <groupId>com.biz.kjt</groupId>             <artifactId>gateway-domain-0.0.1-SNAPSHOT-sources</artifactId>             <version>1.0</version>             <scope>compile</scope>         </dependency>                  <!-- 七牛云 -->         <dependency>               <groupId>com.qiniu</groupId>               <artifactId>qiniu-java-sdk</artifactId>               <version>7.2.11</version>         </dependency>   </dependencies>      <!-- 全局配置,针对整个项目的所有情况都有效 -->   <build>          <!-- 这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在                  最终的打包文件里。 -->          <resources>             <resource>                 <directory>src/main/resources</directory>             </resource>             <resource>                 <directory>src/main/resources_${env}</directory>                 <filtering>true</filtering>             </resource>         </resources>                  <!-- 插件 -->         <plugins>             <!-- jetty运行插件 -->             <plugin>                 <groupId>org.eclipse.jetty</groupId>                 <artifactId>jetty-maven-plugin</artifactId>                 <version>9.2.9.v20150224</version>                 <configuration>                     <httpConnector>                         <port>8081</port>                     </httpConnector>                     <scanIntervalSeconds>0</scanIntervalSeconds>                     <systemProperties>                         <systemProperty>                             <name>org.eclipse.jetty.LEVEL</name>                             <value>DEBUG</value>                         </systemProperty>                     </systemProperties>                 </configuration>             </plugin>

            <!-- 为了使项目结构更为清晰,Maven区别对待Java代码文件和资源文件,maven-compiler-plugin用来编译Java代码,             maven-resources-plugin则用来处理资源文件。 -->                          <!-- maven是个项目管理工具,如果我们不告诉它我们的代码要使用什么样的jdk版本编译的话,                 它就会用maven-compiler-plugin默认的jdk版本来进行处理,这样就容易出现版本不匹配,以至于可能导致编译不通过的问题。 -->             <plugin>                 <groupId>org.apache.maven.plugins</groupId>                 <artifactId>maven-compiler-plugin</artifactId>                 <version>3.1</version>                 <configuration>                     <source>1.8</source>                     <target>1.8</target>                     <encoding>UTF-8</encoding>                 </configuration>             </plugin>             <plugin>                 <artifactId>maven-resources-plugin</artifactId>                 <configuration>                     <nonFilteredFileExtensions>                         <nonFilteredFileExtension>cer</nonFilteredFileExtension>                     </nonFilteredFileExtensions>                 </configuration>             </plugin>                          <!-- 打包插件 -->             <plugin>                 <artifactId>maven-war-plugin</artifactId>                 <executions>                     <execution>                         <phase>package</phase>                         <goals>                             <goal>                                 war                             </goal>                         </goals>                         <configuration>                             <classifier>                                 ${env}                             </classifier>                         </configuration>                     </execution>                 </executions>             </plugin>         </plugins>   </build>         <profiles>         <profile>             <id>dev</id>             <activation>                 <activeByDefault>true</activeByDefault>             </activation>             <properties>                 <env>dev</env>             </properties>         </profile>         <profile>             <id>prod</id>             <activation>                 <activeByDefault>false</activeByDefault>             </activation>             <properties>                 <env>prod</env>             </properties>         </profile>         <profile>             <id>prod_fdbx</id>             <activation>                 <activeByDefault>false</activeByDefault>             </activation>             <properties>                 <env>prod_fdbx</env>             </properties>         </profile>         <profile>             <id>prod_zx</id>             <activation>                 <activeByDefault>false</activeByDefault>             </activation>             <properties>                 <env>prod_zx</env>             </properties>         </profile>     </profiles> </project>

转载请注明原文地址: https://www.6miu.com/read-4200153.html

最新回复(0)