-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpom.xml
More file actions
515 lines (501 loc) · 25.5 KB
/
pom.xml
File metadata and controls
515 lines (501 loc) · 25.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- 指定了当前pom的版本 -->
<modelVersion>4.0.0</modelVersion>
<groupId>com.tortuousroad</groupId>
<artifactId>groupon</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<name>${project.artifactId}</name>
<!-- 该元素描述了项目所有License列表 -->
<licenses>
<license>
<!-- 描述了项目的license,用于生成项目的web站点的license页面 -->
<name>Apache 2</name>
<!-- 官方的license正文页面的URL -->
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<!-- 项目分发的主要方式:repo,可以从Maven库下载 -->
<distribution>repo</distribution>
<!-- 关于license的补充信息 -->
<comments>A business-friendly OSS license</comments>
</license>
</licenses>
<!-- 模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径。 -->
<modules>
<module>Service</module>
</modules>
<!-- 以值替代名称,Properties可以在整个POM中使用 -->
<properties>
<servlet_version>3.1.0</servlet_version>
<javassist_version>3.20.0-GA</javassist_version>
<freemarker_version>2.3.22</freemarker_version>
<spring_version>4.3.2.RELEASE</spring_version>
<maven_jar_plugin_version>2.3.2</maven_jar_plugin_version>
<maven_war_plugin_version>2.1.1</maven_war_plugin_version>
<maven_install_plugin_version>2.3.1</maven_install_plugin_version>
<maven_deploy_plugin_version>2.7</maven_deploy_plugin_version>
<maven_compiler_plugin_version>3.2</maven_compiler_plugin_version>
<maven_clean_plugin_version>2.4.1</maven_clean_plugin_version>
<java_source_version>8</java_source_version>
<java_target_version>8</java_target_version>
<file_encoding>UTF-8</file_encoding>
</properties>
<!-- 继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析,
而是当子项目声明一个依赖(必须描述group ID和artifact ID信息),
如果group ID和artifact ID以外的一些信息没有描述,则通过group ID和artifact ID匹配到这里的依赖,并使用这里的依赖信息。 -->
<dependencyManagement>
<!-- 该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。-->
<dependencies>
<!-- 团购项目中Service模块 -->
<dependency>
<groupId>com.tortuousroad</groupId>
<artifactId>groupon-service</artifactId>
<version>1.0</version>
</dependency>
<!-- 使用Spring 的AOP 特性时所需的类和源码级元数据支持。使用基于AOP 的Spring特性,如声明型事务管理 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring_version}</version>
</dependency>
<!-- 提供对AspectJ的支持,以便可以方便的将面向方面的功能集成进IDE中 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring_version}</version>
</dependency>
<!-- 包含访问配置文件、创建和管理bean
以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring_version}</version>
</dependency>
<!-- 为Spring 核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,
JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring_version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring_version}</version>
</dependency>
<!-- 包含Spring 框架基本的核心工具类。Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring_version}</version>
</dependency>
<!-- 表达式语言,它能够以一种强大和简洁的方式将值装配到bean属性和构造器参数中。 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring_version}</version>
</dependency>
<!-- 包含对Spring 对JDBC 数据访问进行封装的所有类 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring_version}</version>
</dependency>
<!-- 包含Spring对DAO特性集进行了扩展,使其支持 iBATIS、JDO、OJB、TopLink,因为Hibernate已经独立成包了,现在不包含在这个包里了。
这个jar文件里大部分的类都要依赖spring-dao.jar里的类,用这个包时你需要同时包含spring-dao.jar包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring_version}</version>
</dependency>
<!-- Spring提供对事务的支持 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring_version}</version>
</dependency>
<!-- SpringWeb下的工具包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring_version}</version>
</dependency>
<!-- 包含Spring MVC框架相关的所有类。包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring_version}</version>
</dependency>
<!-- 集合spring与mybatis框架的工具包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.1</version>
</dependency>
<!-- 实现mybatis框架的工具包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.3</version>
</dependency>
<!-- mysql数据库连接包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.3</version>
</dependency>
<!-- 与Java.lang这个包的作用类似,Commons Lang这一组API也是提供一些基础的、通用的操作和处理,
如自动生成toString()的结果、自动实现hashCode()和equals()方法、数组操作、枚举、日期和时间的处理等等。 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<!-- 数据库连接池-->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- 强大和高性能的文件上传能力 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
<!-- commons-fileupload-1.3.2.jar工具包的依赖包是commons-io-2.2.jar -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<!-- 实现log4j,sl4j,jdk的log等日志管理系统的接口。内部有一个Simple logger的简单实现,但是功能很弱。
所以使用common-logging,通常都是配合着log4j来使用 -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!-- 这个包是一个实现对象池的工具,所谓对象池就是一个放满对象的池,这些对象都创建好了,
所以需要使用时可以直接获取来使用,用完再还回去。这样的做法可以减少代码中创建对象的时间 -->
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.6</version>
</dependency>
<!-- 实现对象池的工具包 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.4.2</version>
</dependency>
<!-- XML解析包,用于XML,XPath和XSLT -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<!-- FCKeditor 编辑器和Java之间的集成包,
可以在 Java 程序中处理FCKeditor编辑器中的文件上传、浏览等需要服务器端支持的功能 -->
<dependency>
<groupId>net.fckeditor</groupId>
<artifactId>java-core</artifactId>
<version>2.6</version>
</dependency>
<!-- ImageMagick这个软件来帮我们快速的处理图片,他是使用C语言编写的,所以效率很快;im4java是针对这个软件所编写的Java API,
通过这套API我们可以把想要处理的图片交给ImageMagick,让他来对这个图片进行处理 -->
<dependency>
<groupId>org.im4java</groupId>
<artifactId>im4java</artifactId>
<version>1.4.0</version>
</dependency>
<!-- 一个开源的分析、编辑和创建Java字节码的类库。 -->
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>${javassist_version}</version>
</dependency>
<!-- servlet的依赖包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet_version}</version>
</dependency>
<!-- 基于Java语言的开源json格式解析工具的核心包(必须),提供基于“流模式”解析的API -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.2</version>
</dependency>
<!-- 数据绑定包(可选),提供基于“对象绑定”和“树模型”相关API -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.2</version>
</dependency>
<!-- 模板引擎 -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.22</version>
</dependency>
<!-- Simple Logging Facade for Java,为java提供的简单日志Facade。
Facade:门面,更底层一点说就是接口。他允许用户以自己的喜好,在工程中通过slf4j接入不同的日志系统。 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<!-- 开源日志组件,logback当前分成三个模块:logback-core,logback- classic和logback-access。
logback-core是其它两个模块的基础模块。 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.3</version>
</dependency>
<!-- logback-classic是log4j的一个 改良版本。
此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>
<!-- lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.2</version>
</dependency>
<!-- Fastjson是一个Java语言编写的高性能功能完善的JSON库。 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.16</version>
</dependency>
<!-- jedis就是集成了redis的一些命令操作,封装了redis的java客户端。提供了连接池管理。 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<!-- 发送邮件 -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<!-- 二维码的识别程序库 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.2.1</version>
</dependency>
<!-- Kaptcha是一个基于SimpleCaptcha的验证码开源项目 -->
<dependency>
<groupId>com.github.axet</groupId>
<artifactId>kaptcha</artifactId>
<version>0.0.9</version>
</dependency>
<!-- HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,
并且它支持HTTP协议最新的版本和建议。 -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.1</version>
</dependency>
<!-- HttpCore是一套实现了HTTP协议最基础方面的组件,实现最基本的HTTP传输方面 -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.3.1</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。-->
<dependencies>
<!-- lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- 在工程中通过slf4j接入不同的日志系统 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<!-- 开源日志组件,logback-core是基础模块-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</dependency>
<!-- ogback-classic是log4j的一个 改良版本。
此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<!-- junit单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- 汉字转拼音库-->
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>
</dependencies>
<!-- 构建项目需要的信息 -->
<build>
<!-- 使用的插件列表 -->
<plugins>
<!-- 编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<!-- 打包插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<addMavenDescriptor>true</addMavenDescriptor>
<index>true</index>
<manifest>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<!-- 发布插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>false</skip>
</configuration>
</plugin>
<!-- 源码插件 -->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<configuration>
<attach>true</attach>
</configuration>
<!-- 在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置 -->
<executions>
<!-- execution元素包含了插件执行需要的信息 -->
<execution>
<!-- 绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段 -->
<phase>compile</phase>
<!-- 配置的执行目标 -->
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 可能是由于历史的原因,Maven 2/3中用于执行测试的插件不是maven-test-plugin,而是maven-surefire-plugin。
其实大部分时间内,只要你的测试类遵循通用的命令约定(以Test结尾、以TestCase结尾、或者以Test开头),就几乎不用知晓该插件的存在。
然而在当你想要跳过测试、排除某些测试类、或者使用一些TestNG特性的时候,了解maven-surefire-plugin的一些配置选项就很有用了。
例如 mvn test -Dtest=FooTest 这样一条命令的效果是仅运行FooTest测试类,这是通过控制maven-surefire-plugin的test参数实现的。-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
<!-- 这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里 -->
<resources>
<!-- 这个元素描述了项目相关或测试相关的所有资源路径 -->
<resource>
<directory>src/main/java</directory>
<!-- 包含的模式列表,例如*/.xml -->
<includes>
<include>**/*.xml</include>
</includes>
<!-- 是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出 -->
<filtering>true</filtering>
</resource>
</resources>
<!-- 子项目可以引用的默认插件信息。该插件配置项直到被引用时才会被解析或绑定到生命周期。给定插件的任何本地配置都会覆盖这里的配置 -->
<pluginManagement>
<!-- 使用的插件列表 -->
<plugins>
<!-- 打包插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven_jar_plugin_version}</version>
</plugin>
<!-- 打包插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${maven_war_plugin_version}</version>
</plugin>
<!-- 安装插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${maven_install_plugin_version}</version>
</plugin>
<!-- 部署插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${maven_deploy_plugin_version}</version>
</plugin>
<!-- 编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven_compiler_plugin_version}</version>
<configuration>
<!-- 一般而言,target与source是保持一致的,但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,
源代码中需要没有使用低版本jdk中不支持的语法),会存在target不同于source的情况 -->
<!-- 源代码使用的开发版本 -->
<source>${java_source_version}</source>
<!-- 需要生成的目标class文件的编译版本 -->
<target>${java_target_version}</target>
<!-- 编码方式 -->
<encoding>${file_encoding}</encoding>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<!-- 项目的问题管理系统(Bugzilla, Jira, Scarab,或任何你喜欢的问题管理系统)的名称和URL -->
<issueManagement>
<!-- 问题管理系统(例如jira)的名字 -->
<system>GitHub</system>
<!-- 该项目使用的问题管理系统的URL -->
<url>https://github.com/Meteor747/groupon</url>
</issueManagement>
<!-- 项目开发者列表 -->
<developers>
<!-- 某个项目开发者的信息 -->
<developer>
<!-- 项目开发者的全名 -->
<name>LiuJiaXing</name>
<!-- id,SCM里项目开发者的唯一标识符 -->
<id></id>
<email>jiaxing747@163.com</email>
<!-- 项目开发者在项目中扮演的角色,角色元素描述了各种角色 -->
<roles>
<role>Architect</role>
</roles>
<!-- 项目开发者所在时区, -11到12范围内的整数 -->
<timezone>+8</timezone>
</developer>
</developers>
</project>