为了账号安全,请及时绑定邮箱和手机立即绑定

构建dubbo分布式平台-maven构建根项目

标签:
Java

上一篇我们介绍《构建dubbo分布式平台-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

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

[html] view plain copy
<span ><?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>

  1. 创建打包脚本:测试、生成等

[html] view plain copy
<span >set MAVEN_OPTS= -Xms128 -Xmx256m  
mvn clean package --define maven.test.skip=true --define environment.type=sit</span>  
[html] view plain copy
<span >set MAVEN_OPTS= -Xms128 -Xmx256m  
mvn clean package --define maven.test.skip=true --define environment.type=pro</span>  
[html] view plain copy
<span >set MAVEN_OPTS= -Xms128 -Xmx256m  
mvn clean package --define maven.test.skip=true --define environment.type=pro</span>

  1. 创建打包的properties文件:

解释: 里面可以配置打包的信息,比如:ip、域名、包名等


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消