ITPUX技术网

交流 . 资讯 . 分享
Make progress together!
Linux操作系统下Oracle11g R2 RAC 安装配置教程
Oracle数据库培训-备份恢复-性能优化-集群容灾
Oracle数据库DBA高级工程师培训视频

(五)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven构建根项目

内容发布:小丸子呀| 发布时间:2018-2-11 15:35:31
上一篇我们介绍《springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven模块规划》,从今天开始,我们将对代码的每一个构建做详细的记录,能够帮助大家如何快速构建dubbo分布式企业架构。
导语:在dubbo分布式架构构建之前,请大家务必掌握maven的相关技能,因为架构中大量使用maven技术进行项目构建,有不熟的朋友可以在网上找一些资料学习。
1. 准备技能
开发语言:JAVA/J2EE
项目构建管理:Maven
持续集成方案:Jenkins
SOA服务: Dubbo、zookeeper、Restful
SSO单点登录:Redis、JWT、Restful
分布式缓存:Redis
分布式消息中间件:zookeeper+kafka
分布式文件:FastDFS
数据库连接池:Alibaba Druid
核心框架:Spring framework、Spring MVC、Apache Shiro、MyBatis
前端框架:Bootstrap + html5 + CSS3

2. 创建maven基础项目,其中只需要配置pom.xml文件和打包的文件即可,代码如下:

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
<span style="font-size: 16px;"><?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>  
   
    <groupId>com.sml.sz</groupId>  
    <artifactId>ant-project</artifactId>  
    <version>1.0.0</version>  
    <packaging>pom</packaging>  
   
    <name>ant-project</name>  
    <url>http://maven.apache.org</url>  
    <inceptionYear>2015-2016</inceptionYear>  
   
    <properties>  
        <!-- 框架通用包版本设置 -->  
        <spring.version>4.2.2.RELEASE</spring.version>  
        <validator.version>5.1.1.Final</validator.version>  
        <mybatis.version>3.2.8</mybatis.version>  
        <mybatis-spring.version>1.2.2</mybatis-spring.version>  
        <shiro.version>1.2.3</shiro.version>  
        <druid.version>1.0.11</druid.version>  
        <ehcache.version>2.6.9</ehcache.version>  
        <ehcache-web.version>2.0.4</ehcache-web.version>  
        <sitemesh.version>2.4.2</sitemesh.version>  
        <activiti.version>5.15.1</activiti.version>  
        <wink.version>1.4</wink.version>  
        <sso.client.version>3.2.1</sso.client.version>  
   
        <!-- 通用工具包版本设置 -->  
        <slf4j.version>1.7.7</slf4j.version>  
        <commons-lang3.version>3.3.2</commons-lang3.version>  
        <commons-io.version>2.4</commons-io.version>  
        <commons-codec.version>1.9</commons-codec.version>  
        <commons-fileupload.version>1.3.1</commons-fileupload.version>  
        <commons-beanutils.version>1.9.1</commons-beanutils.version>  
        <jackson.version>2.2.3</jackson.version>  
        <fastjson.version>1.1.40</fastjson.version>  
        <xstream.version>1.4.7</xstream.version>  
        <guava.version>17.0</guava.version>  
        <dozer.version>5.5.1</dozer.version>  
        <email.version>1.4.7</email.version>  
        <poi.version>3.9</poi.version>  
        <freemarker.version>2.3.20</freemarker.version>  
   
        <!-- 基础环境设置 -->  
        <jdk.version>1.6</jdk.version>  
        <tomcat.version>2.2</tomcat.version>  
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
        <downloadSources>true</downloadSources>  
   
        <!-- jdbc驱动版本设置 -->  
        <mysql.driver.version>5.1.30</mysql.driver.version>  
    </properties>  
   
    <dependencies>  
        <!-- 单元测试 -->  
        <dependency>  
            <groupId>junit</groupId>  
            <artifactId>junit</artifactId>  
            <version>4.11</version>  
            <scope>test</scope>  
        </dependency>  
        <!-- Tomcat 如果存在就不需要将servlet-api.jar、jsp-api.jar一起打包 -->  
        <dependency>  
            <groupId>javax.servlet</groupId>  
            <artifactId>servlet-api</artifactId>  
            <version>2.5</version>  
            <scope>provided</scope>  
        </dependency>  
        <dependency>  
            <groupId>javax.servlet.jsp</groupId>  
            <artifactId>jsp-api</artifactId>  
            <version>2.1</version>  
            <scope>provided</scope>  
        </dependency>  
    </dependencies>  
   
    <dependencyManagement>  
        <dependencies>  
            <!-- ant 工具jar -->  
            <dependency>  
                <groupId>com.sml.sz</groupId>  
                <artifactId>ant-utils</artifactId>  
                <version>${project.version}</version>  
            </dependency>  
            <!-- ant 公共配置jar -->  
            <dependency>  
                <groupId>com.sml.sz</groupId>  
                <artifactId>ant-config</artifactId>  
                <version>${project.version}</version>  
            </dependency>  
            <!-- ant 核心框架jar -->  
            <dependency>  
                <groupId>com.sml.sz</groupId>  
                <artifactId>ant-framework</artifactId>  
                <version>${project.version}</version>  
            </dependency>  
            <!-- ant 代码自动生成业务jar -->  
            <dependency>  
                <groupId>com.sml.sz</groupId>  
                <artifactId>ant-core-gen</artifactId>  
                <version>${project.version}</version>  
            </dependency>  
            <!-- ant 会员业务jar -->  
            <dependency>  
                <groupId>com.sml.sz</groupId>  
                <artifactId>ant-core-member</artifactId>  
                <version>${project.version}</version>  
            </dependency>  
               
            <!-- ant RestFul服务系統 -->  
            <dependency>  
                <groupId>com.sml.sz</groupId>  
                <artifactId>ant-web-service</artifactId>  
                <version>${project.version}</version>  
            </dependency>  
            <!-- ant admin后台管理系統 -->  
            <dependency>  
                <groupId>com.sml.sz</groupId>  
                <artifactId>ant-web-admin</artifactId>  
                <version>${project.version}</version>  
            </dependency>  
   
            <!-- dubbo begin -->  
            <dependency>  
                <groupId>com.sml.sz</groupId>  
                <artifactId>ant-member-facade</artifactId>  
                <version>${project.version}</version>  
            </dependency>  
            <dependency>  
                <groupId>com.sml.sz</groupId>  
                <artifactId>ant-member-service</artifactId>  
                <version>${project.version}</version>  
            </dependency>  
            <!-- dubbo end -->  
        </dependencies>  
    </dependencyManagement>  
   
    <build>  
        <pluginManagement>  
            <plugins>  
                <!-- maven -->  
                <plugin>  
                    <groupId>org.apache.maven.plugins</groupId>  
                    <artifactId>maven-antrun-plugin</artifactId>  
                    <version>1.7</version>  
                </plugin>  
                <plugin>  
                    <groupId>org.apache.maven.plugins</groupId>  
                    <artifactId>maven-compiler-plugin</artifactId>  
                    <version>2.3.2</version>  
                    <configuration>  
                        <source>1.5</source>  
                        <target>1.5</target>  
                        <!-- 去除临时文件 -->  
                        <excludes>  
                            <exclude>**/*.keep</exclude>  
                            <exclude>**/*.keep.*</exclude>  
                            <exclude>*.bak</exclude>  
                            <exclude>*.contrib</exclude>  
                        </excludes>  
                        <showDeprecation>true</showDeprecation>  
                        <compilerArgument>-Xlint:unchecked,deprecation,fallthrough,finally</compilerArgument>  
                        <fork>true</fork>  
                        <encoding>${project.build.sourceEncoding}</encoding>  
                    </configuration>  
                </plugin>  
                <plugin>  
                    <groupId>org.apache.maven.plugins</groupId>  
                    <artifactId>maven-jar-plugin</artifactId>  
                    <version>2.3.1</version>  
                    <executions>  
                        <execution>  
                            <goals>  
                                <goal>test-jar</goal>  
                            </goals>  
                        </execution>  
                    </executions>  
                    <configuration>  
                        <archive>  
                            <manifest>  
                                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>  
                                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>  
                            </manifest>  
                        </archive>  
                    </configuration>  
                </plugin>  
                <plugin>  
                    <groupId>org.apache.maven.plugins</groupId>  
                    <artifactId>maven-release-plugin</artifactId>  
                    <version>2.1</version>  
                </plugin>  
                <plugin>  
                    <groupId>org.apache.maven.plugins</groupId>  
                    <artifactId>maven-resources-plugin</artifactId>  
                    <version>2.4.3</version>  
                    <configuration>  
                        <!-- 去除临时文件 -->  
                        <excludes>  
                            <exclude>**/*.keep</exclude>  
                            <exclude>**/*.keep.*</exclude>  
                            <exclude>*.bak</exclude>  
                            <exclude>*.contrib</exclude>  
                        </excludes>  
                    </configuration>  
                </plugin>  
                <plugin>  
                    <groupId>org.apache.maven.plugins</groupId>  
                    <artifactId>maven-site-plugin</artifactId>  
                    <version>2.1.1</version>  
                    <configuration>  
                        <inputEncoding>${project.build.sourceEncoding}</inputEncoding>  
                        <outputEncoding>${project.build.sourceEncoding}</outputEncoding>  
                    </configuration>  
                </plugin>  
                <plugin>  
                    <groupId>org.apache.maven.plugins</groupId>  
                    <artifactId>maven-source-plugin</artifactId>  
                    <version>2.1.2</version>  
                    <executions>  
                        <execution>  
                            <id>attach-sources</id>  
                            <goals>  
                                <goal>jar</goal>  
                                <goal>test-jar</goal>  
                            </goals>  
                        </execution>  
                    </executions>  
                    <configuration>  
                        <excludeResources>false</excludeResources>  
                        <attach>true</attach>  
                    </configuration>  
                </plugin>  
                <plugin>  
                    <groupId>org.apache.maven.plugins</groupId>  
                    <artifactId>maven-war-plugin</artifactId>  
                    <version>2.4</version>  
                </plugin>  
                <plugin>  
                    <groupId>org.apache.maven.plugins</groupId>  
                    <artifactId>maven-ear-plugin</artifactId>  
                    <version>2.9</version>  
                    <configuration>  
                        <version>5</version>  
                    </configuration>  
                </plugin>  
                <plugin>  
                    <groupId>org.apache.maven.plugins</groupId>  
                    <artifactId>maven-surefire-plugin</artifactId>  
                    <version>2.6</version>  
                    <configuration>  
                        <testFailureIgnore>true</testFailureIgnore>  
                    </configuration>  
                </plugin>  
                <plugin>  
                    <groupId>org.apache.maven.plugins</groupId>  
                    <artifactId>maven-surefire-report-plugin</artifactId>  
                    <version>2.6</version>  
                    <configuration>  
                        <parallel>both</parallel>  
                    </configuration>  
                </plugin>  
                <plugin>  
                    <groupId>com.google.code.maven-replacer-plugin</groupId>  
                    <artifactId>replacer</artifactId>  
                    <version>1.5.1</version>  
                    <executions>  
                        <execution>  
                            <phase>prepare-package</phase>  
                            <goals>  
                                <goal>replace</goal>  
                            </goals>  
                        </execution>  
                    </executions>  
                </plugin>  
   
                <!-- 读取系统配置的properties文件,避免写入profile中,各自模块使用的时候注意修改路径 -->  
                <plugin>  
                    <groupId>org.kuali.maven.plugins</groupId>  
                    <artifactId>properties-maven-plugin</artifactId>  
                    <version>2.0.1</version>  
                    <configuration>  
                        <locations>  
                            <location>${basedir}/../project_${profile}.properties</location>  
                        </locations>  
                    </configuration>  
                    <executions>  
                        <execution>  
                            <phase>prepare-package</phase>  
                            <goals>  
                                <goal>read-project-properties</goal>  
                            </goals>  
                        </execution>  
                    </executions>  
                </plugin>  
            </plugins>  
        </pluginManagement>  
    </build>  
    <profiles>  
        <profile>  
            <id>dev</id>  
            <activation>  
                <activeByDefault>true</activeByDefault>  
            </activation>  
            <properties>  
                <project>  
                    dev  
                </project>  
            </properties>  
        </profile>  
        <profile>  
            <id>sit</id>  
            <activation>  
                <property>  
                    <name>environment.type</name>  
                    <value>sit</value>  
                </property>  
            </activation>  
            <properties>  
                <project>  
                    sit  
                </project>  
            </properties>  
        </profile>  
        <profile>  
            <id>uat</id>  
            <activation>  
                <property>  
                    <name>environment.type</name>  
                    <value>uat</value>  
                </property>  
            </activation>  
            <properties>  
                <project>  
                    uat  
                </project>  
            </properties>  
        </profile>  
        <profile>  
            <id>performance</id>  
            <activation>  
                <property>  
                    <name>environment.type</name>  
                    <value>performance</value>  
                </property>  
            </activation>  
            <properties>  
                <project>  
                    performance  
                </project>  
            </properties>  
        </profile>  
        <profile>  
            <id>production</id>  
            <activation>  
                <property>  
                    <name>environment.type</name>  
                    <value>production</value>  
                </property>  
            </activation>  
            <properties>  
                <project>  
                    production  
                </project>  
            </properties>  
        </profile>  
    </profiles>  
   
    <modules>  
        <!-- ant 工具jar -->  
        <module>ant-utils</module>  
   
        <!-- ant 公共配置jar -->  
        <module>ant-config</module>  
   
        <!-- ant 核心框架jar -->  
        <module>ant-framework</module>  
   
        <!-- ant 代码自动生成业务jar -->  
        <module>ant-core-gen</module>  
   
        <!-- ant 会员业务jar -->  
        <module>ant-core-member</module>  
   
        <!-- ant admin后台管理系統 -->  
        <module>ant-web-admin</module>  
   
        <!-- ant Restful服务管理系統 -->  
        <module>ant-web-service</module>  
   
        <!-- ant member Dubbo服务接口 -->  
        <module>ant-member-facade</module>  
   
        <!-- ant member Dubbo服务提供者 -->  
        <module>ant-member-service</module>  
    </modules>  
    <description>ant平台的super工程,定义了整合ant项目群的基本信息,以及依赖项和插件信息、maven的自定义信息</description>  
</project></span>  





2. 创建打包脚本:测试、生成等
build_SIT-no-test.bat
1
2
<span style="font-size: 16px;">set MAVEN_OPTS= -Xms128 -Xmx256m  
mvn clean package --define maven.test.skip=true --define environment.type=sit</span>  




  build_UAT-no-test.bat
1
2
<span style="font-size: 16px;">set MAVEN_OPTS= -Xms128 -Xmx256m  
mvn clean package --define maven.test.skip=true --define environment.type=uat</span>  




  build_PROD-no-test.bat
1
2
<span style="font-size: 16px;">set MAVEN_OPTS= -Xms128 -Xmx256m  
mvn clean package --define maven.test.skip=true --define environment.type=pro</span>  





3. 创建打包的properties文件:
project_sit.properties
解释: 里面可以配置打包的信息,比如:ip、域名、包名等

4. 代码结构如下:


5.架构代码如下:



资料和源码来源




上一篇:(四)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven代码结构
下一篇:(六)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven构建config配置项目
回复

使用道具 举报

1框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表