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