该pom中包含了一些我认为会需要的东西,并且加了注释。可以根据需求适当删减。
包含了spring-mvc , junit,hibernate验证,json,apache-commons组件
还有 complier,cargo,surefire,jetty插件
1 <project xmlns="http:///POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2 xsi:schemaLocation="http:///POM/4.0.0
3 http:///maven-v4_0_0.xsd">
4
5 <!-- 下面7个设置就不用复制了,每个项目都不一样的 -->
6 <modelVersion>4.0.0</modelVersion>
7 <groupId>com.suyin</groupId>
8 <artifactId>weixin</artifactId>
9 <packaging>war</packaging>
10 <version>0.0.1-SNAPSHOT</version>
11 <name>weixin Maven Webapp</name>
12 <url>http://</url>
13
14 <properties>
15 <spring-version>4.0.6.RELEASE</spring-version>
16 <junit-version>4.9</junit-version>
17 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
18 </properties>
19
20 <!-- 其实吧,如果你在ecplise中查看这个pom的继承树,你会发现好多都是重复的,完全可以不写:比如 spring-core,任何一个spring组件 -->
21 <!-- 都依赖这个组件,并且也声明这个依赖啊,那么其实我们在这个pom中根本不必显式声明依赖 spring-core,Maven会自动帮我们处理这种依赖传递的。 -->
22 <!-- 可是显式声明不是显得清楚明白一点么 -->
23 <dependencies>
24 <!--这个包要有,要不然在Controller中连HttpServletRequest都没法依赖了,不过在实际环境中容器会提供所以scope是provided -->
25 <!-- 当然如果不是web项目那就肯定不需要了^_^ -->
26 <dependency>
27 <groupId>javax.servlet</groupId>
28 <artifactId>javax.servlet-api</artifactId>
29 <version>3.0.1</version>
30 <scope>provided</scope>
31 </dependency>
32
33 <!-- 这个包未必要有,在jsp中,如果要写 out.print("xxx"); 那么如果没有这个包会发现key assistant根本没用了 -->
34 <!-- 因为 out就是 javax.servlet.jsp.JspWriter的对象,而这个类就在这个包里面 -->
35 <!-- 当然如果压根就没想过这么写,也可以不要这个组件 -->
36 <dependency>
37 <groupId>javax.servlet.jsp</groupId>
38 <artifactId>jsp-api</artifactId>
39 <version>2.2.1-b03</version>
40 <scope>provided</scope>
41 </dependency>
42
43 <!-- spring 核心组件 开始 -->
44 <dependency>
45 <groupId>org.springframework</groupId>
46 <artifactId>spring-core</artifactId>
47 <version>${spring-version}</version>
48 </dependency>
49 <dependency>
50 <groupId>org.springframework</groupId>
51 <artifactId>spring-beans</artifactId>
52 <version>${spring-version}</version>
53 </dependency>
54 <dependency>
55 <groupId>org.springframework</groupId>
56 <artifactId>spring-context</artifactId>
57 <version>${spring-version}</version>
58 </dependency>
59 <dependency>
60 <groupId>org.springframework</groupId>
61 <artifactId>spring-context-support</artifactId>
62 <version>${spring-version}</version>
63 </dependency>
64
65 <!-- spring expression是spring扩展el表达式的一个组件(SpEL) -->
66 <!-- 一个最简单的应用使用cache时描述生成key的策略 -->
67 <!-- 如有注解:@Cacheable(value="peoplecache",key="#root.method.name") -->
68 <!-- 如果不需要用SpEL,就不要加这个组件了 -->
69 <dependency>
70 <groupId>org.springframework</groupId>
71 <artifactId>spring-expression</artifactId>
72 <version>${spring-version}</version>
73 </dependency>
74 <!-- spring 核心组件结束 -->
75
76 <!-- spring web组件开始(看名字就知道要使用spring mvc的必须组件了) -->
77 <dependency>
78 <groupId>org.springframework</groupId>
79 <artifactId>spring-web</artifactId>
80 <version>${spring-version}</version>
81 </dependency>
82 <dependency>
83 <groupId>org.springframework</groupId>
84 <artifactId>spring-webmvc</artifactId>
85 <version>${spring-version}</version>
86 </dependency>
87 <!-- spring web组件结束 -->
88
89 <!-- aop(尽管不是十分清楚,但是如果要在xml中配置事务(声明性事务配置),我觉得就必须有这个组件;) -->
90 <dependency>
91 <groupId>org.springframework</groupId>
92 <artifactId>spring-aop</artifactId>
93 <version>${spring-version}</version>
94 </dependency>
95
96 <!-- 这里提供了对于AspectJ的整合,其实AspectJ是与spring-aop差不多但是可能功能多一点的框架 -->
97 <!-- 一般情况下spring-aop就足够了,所以一般情况下也不需要这个组件 -->
98 <dependency>
99 <groupId>org.springframework</groupId>
100 <artifactId>spring-aspects</artifactId>
101 <version>${spring-version}</version>
102 </dependency>
103
104 <!-- spring数据层,没啥说的,当然如果用其他的jdbc那就可以不要这个组件了 -->
105 <dependency>
106 <groupId>org.springframework</groupId>
107 <artifactId>spring-jdbc</artifactId>
108 <version>${spring-version}</version>
109 </dependency>
110 <!-- 提供事务管理,没啥说的 -->
111 <dependency>
112 <groupId>org.springframework</groupId>
113 <artifactId>spring-tx</artifactId>
114 <version>${spring-version}</version>
115 </dependency>
116
117 <!-- 提过对junit和testng的支持,测试肯定要的 -->
118 <dependency>
119 <groupId>org.springframework</groupId>
120 <artifactId>spring-test</artifactId>
121 <version>${spring-version}</version>
122 <scope>test</scope>
123 </dependency>
124
125 <!-- spring 不常用组件 开始 -->
126 <!-- 估计随着HTML5的发展,这个组件会变得常用 -->
127 <dependency>
128 <groupId>org.springframework</groupId>
129 <artifactId>spring-websocket</artifactId>
130 <version>${spring-version}</version>
131 </dependency>
132
133 <!-- 这个组件提供对STOMP协议的支持,说实话从来没用过这个协议 -->
134 <dependency>
135 <groupId>org.springframework</groupId>
136 <artifactId>spring-messaging</artifactId>
137 <version>${spring-version}</version>
138 </dependency>
139
140 <!-- 提供了对各个容器的扩展,似乎并不太需要 -->
141 <dependency>
142 <groupId>org.springframework</groupId>
143 <artifactId>spring-instrument</artifactId>
144 <version>${spring-version}</version>
145 </dependency>
146 <!-- 看名字就是提供对orm框架( JPA, JDO, and Hibernate)的支持 -->
147 <!-- 如果用Mybatis,那就不要这个组件了 -->
148 <dependency>
149 <groupId>org.springframework</groupId>
150 <artifactId>spring-orm</artifactId>
151 <version>${spring-version}</version>
152 </dependency>
153 <!-- 看名字就是xml与object的mapping了 。就是把xml和pojo这件来回转换。 -->
154 <dependency>
155 <groupId>org.springframework</groupId>
156 <artifactId>spring-oxm</artifactId>
157 <version>${spring-version}</version>
158 </dependency>
159 <!-- 看名字就是提供对jms的支持了 -->
160 <dependency>
161 <groupId>org.springframework</groupId>
162 <artifactId>spring-jms</artifactId>
163 <version>${spring-version}</version>
164 </dependency>
165 <!-- 提供了基于portlet的mvc实现(By the way,我目前接触后台的mvc都是基于servlet或者filter实现的,所有大部分时候是不要这个东西的) -->
166 <dependency>
167 <groupId>org.springframework</groupId>
168 <artifactId>spring-webmvc-portlet</artifactId>
169 <version>${spring-version}</version>
170 </dependency>
171 <!-- spring 不常用组件结束 -->
172 <dependency>
173 <groupId>junit</groupId>
174 <artifactId>junit</artifactId>
175 <version>${junit-version}</version>
176 <scope>test</scope>
177 </dependency>
178 <dependency>
179 <groupId>log4j</groupId>
180 <artifactId>log4j</artifactId>
181 <version>1.2.14</version>
182 </dependency>
183
184 <!-- 没用过json,好意思说是程序员! -->
185 <dependency>
186 <groupId>net.sf.json-lib</groupId>
187 <artifactId>json-lib</artifactId>
188 <version>2.4</version>
189 <classifier>jdk15</classifier>
190 </dependency>
191
192
193
194 <!-- 在spring-text组件中测试测试返回的json是什么,要下面两个包 -->
195 <dependency>
196 <groupId>net.minidev</groupId>
197 <artifactId>json-smart</artifactId>
198 <version>1.2</version>
199 <scope>test</scope>
200 </dependency>
201 <dependency>
202 <groupId>com.jayway.jsonpath</groupId>
203 <artifactId>json-path</artifactId>
204 <version>0.9.1</version>
205 <scope>test</scope>
206 </dependency>
207
208 <dependency>
209 <groupId>mysql</groupId>
210 <artifactId>mysql-connector-java</artifactId>
211 <version>5.1.35</version>
212 </dependency>
213
214 <!-- mybatis -->
215 <dependency>
216 <groupId>org.mybatis</groupId>
217 <artifactId>mybatis</artifactId>
218 <version>3.3.0</version>
219 </dependency>
220 <dependency>
221 <groupId>org.mybatis</groupId>
222 <artifactId>mybatis-spring</artifactId>
223 <version>1.2.3</version>
224 </dependency>
225
226
227 <!-- 这两个包是jstl表达式需要的包,jstl就是常用的 c:foreach;c:if什么的 -->
228 <dependency>
229 <groupId>taglibs</groupId>
230 <artifactId>standard</artifactId>
231 <version>1.1.2</version>
232 </dependency>
233 <dependency>
234 <groupId>jstl</groupId>
235 <artifactId>jstl</artifactId>
236 <version>1.2</version>
237 </dependency>
238 <!-- 使用hibernate进行数据校验需要下面这个组件,其实这个组件还依赖jboss-logging,validation-api等, -->
239 <!-- 不过maven会帮我们自动处理这个依赖的。 -->
240 <dependency>
241 <groupId>org.hibernate</groupId>
242 <artifactId>hibernate-validator</artifactId>
243 <version>5.1.3.Final</version>
244 </dependency>
245
246 <!-- 不是说spring整合ehcache比较好吗?为什么不用呢 -->
247 <dependency>
248 <groupId>net.sf.ehcache</groupId>
249 <artifactId>ehcache-core</artifactId>
250 <version>2.6.0</version>
251 </dependency>
252
253
254 <!-- 下面是常用的apache的 commons-xxx -->
255 <dependency>
256 <groupId>commons-fileupload</groupId>
257 <artifactId>commons-fileupload</artifactId>
258 <version>1.3</version>
259 </dependency>
260 <dependency>
261 <groupId>commons-lang</groupId>
262 <artifactId>commons-lang</artifactId>
263 <version>2.6</version>
264 </dependency>
265 <dependency>
266 <groupId>commons-io</groupId>
267 <artifactId>commons-io</artifactId>
268 <version>2.4</version>
269 </dependency>
270 <dependency>
271 <groupId>commons-collections</groupId>
272 <artifactId>commons-collections</artifactId>
273 <version>3.2.1</version>
274 </dependency>
275 <dependency>
276 <groupId>commons-beanutils</groupId>
277 <artifactId>commons-beanutils</artifactId>
278 <version>1.9.2</version>
279 </dependency>
280
281 </dependencies>
282
283 <build>
284 <finalName>weixin</finalName>
285 <plugins>
286 <!-- 这个plugin 保证maven编译用的是java 1.7 -->
287 <plugin>
288 <artifactId>maven-compiler-plugin</artifactId>
289 <version>3.0</version>
290 <configuration>
291 <source>1.7</source>
292 <target>1.7</target>
293 </configuration>
294 </plugin>
295 <!-- 这个plugin配置保证在测试时以Abstract开头的类不进行测试 -->
296 <plugin>
297 <groupId>org.apache.maven.plugins</groupId>
298 <artifactId>maven-surefire-plugin</artifactId>
299 <version>2.5</version>
300 <configuration>
301 <excludes>
302 <exclude>**/**/Abstract*.java</exclude>
303 </excludes>
304 </configuration>
305 </plugin>
306
307 <!-- 下面这个plugin是jetty容器插件 -->
308 <plugin>
309 <groupId>org.mortbay.jetty</groupId>
310 <artifactId>maven-jetty-plugin</artifactId>
311 <version>6.1.10</version>
312 <configuration>
313 <scanIntervalSeconds>10</scanIntervalSeconds>
314 <stopKey>foo</stopKey>
315 <stopPort>9999</stopPort>
316 </configuration>
317 <executions>
318 <execution>
319 <id>start-jetty</id>
320 <phase>pre-integration-test</phase>
321 <goals>
322 <goal>run</goal>
323 </goals>
324 <configuration>
325 <scanIntervalSeconds>0</scanIntervalSeconds>
326 <daemon>true</daemon>
327 </configuration>
328 </execution>
329 <execution>
330 <id>stop-jetty</id>
331 <phase>post-integration-test</phase>
332 <goals>
333 <goal>stop</goal>
334 </goals>
335 </execution>
336 </executions>
337 </plugin>
338 <!-- 这是cargo插件,不知道cargo是什么!好吧,cargo可以实现自动化部署 -->
339 <!-- 下面的配置就是把war包自动发送到192.168.128.137:8080的tomcat中 -->
340 <plugin>
341 <groupId>org.codehaus.cargo</groupId>
342 <artifactId>cargo-maven2-plugin</artifactId>
343 <version>1.4.9</version>
344 <configuration>
345 <container>
346 <containerId>tomcat7x</containerId>
347 <type>remote</type>
348 </container>
349 <configuration>
350 <type>runtime</type>
351 <properties>
352 <cargo.remote.uri>http://192.168.128.137:8080/manager/text</cargo.remote.uri>
353 <cargo.remote.username>admin</cargo.remote.username>
354 <cargo.remote.password>admin</cargo.remote.password>
355 </properties>
356 </configuration>
357 </configuration>
358 </plugin>
359 </plugins>
360 </build>
361
362 </project>
















