1 准备工作(以下版本为个人版本)

 maven 3.3.9

 jdk 1.8

eclipse

2 分布式介绍

分布式项目中,往往不同的项目需要同一个实体类,或者是共享工具类,整个系统搭建采用大型项目开发方式,使用maven继承和聚合,形参多个子项目,方便团队开发,调试和一键部署

项目结构

|-wx-parent       pom

        |- wx-common   jar

         |-wx=manage    pom

             |-wx-manage-pojo   jar

              |-wx-manage-mapper  jar

               |-wx-manage-service  jar 

                |-wx-manage-web  war

在本项目中,一共新建 wx-parent,wx-common,wx-manage,wx-pojo,wx-mapper,wx-service,wx-web七个工程

wx-parent工程包含项目的各个子项目所需的公共的核心jar,这些jar包一般是各种第三方的jar

wx-common工程包含了项目的各个子项目所需的各种工具类,这些工具类一般是由公司自己编写,将来项目发布时,这个工程会被maven打包成一个名为wx-common.jar的文件,放到wx-web工程的web-inf/lib

wx-manage是一个聚合工程,它包含wx-pojo,wx-mapper,wx-service,wx-web四个工程模块,其中wx-web是主导

将来项目发布时,maven会把wx-pojo,wx-mapper,wx-service三个工程分别打包成三个jar,存放于wx-webweb-inf/lib


3 开始搭建

 新建wx-parent工程

  新建maven project   


直接next


输入 Groupid和artifact id


在项目中删除默认生成的App.java,

找到pom.xml.双击,在override中将packaging改为pom,


修改pom.xml中的内容,添加项目所需的依赖jar包(SSM为例)

<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.wx.shj</groupId>
  <artifactId>wx-parent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>


  <name>wx-parent</name>
  <url>http://maven.apache.org</url>


  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <spring.version>4.3.3.RELEASE</spring.version>
  </properties>


<dependencies>
    <dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>


<!-- spring4相关的包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- spring4 aop要用到的包 -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.6</version>
</dependency>
<!-- 验证框架所需要的包 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.3.0.Alpha1</version>
</dependency>
<!-- 添加json解析的库 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.5.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.2</version>
</dependency>
<!--mybatis相关的包 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<!-- mybatis与spring的整合包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>


<!-- 单元测试的包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- mysql的驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.10</version>
</dependency>
<!-- c3po -->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!-- 分页的组件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.0.0</version>
</dependency>
<!-- fileUpload 解析上传的文件用到的jar -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
  </dependencies>
   <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
     
    </plugins>
  </build>
</project>

新建common工程


Overview中将ArtifactPackaging改为jar,保存。

Parent选项栏右边点击select parent,选择上面创建的parent工程,点击OK,保存。

将项目默认生成的测试类和低版本的jUnit删除。

如果这时工程报错,在工程右键点击Maven下的Update Project


新建manage工程,manage为聚合工具,

包含四个模块

com.wx.manage.pojo

com.wx.manage.mapper

com.wx.manage.service

com.wx.manage.web


修改其类型为pom,并设置parent


   >新建pojo模块

module新建的顺序必须按照pojomapperserviceweb的顺序。


在wx-manage工程上右键



删除测试类及junit的依赖 

在依赖中增加wx-common


>新建wx-manage-mapper模块 ,依赖wx-manage-pojo,其它步骤与pojo类似

>新建wx-manage-service模块,依赖wx-manage-mapper,其它步骤与pojo类似

>新建wx-manage-web模块.依赖wx-manage-service

修改pom.xml的packaging 为war


至此分布式项目搭建完毕


GitHub 加速计划 / ma / maven
4.28 K
2.65 K
下载
Maven: Apache Maven是一个开源的项目管理和构建工具,主要用于Java项目。适合需要自动化项目构建和依赖管理的开发者。特点包括约定优于配置、易于使用和社区驱动。
最近提交(Master分支:9 天前 )
7ea795b7 The `FilteredProjectDependencyGraph` class fix for non-transitive case and an UT. Also contains some improvement in classes, making them immutable as intended. --- https://issues.apache.org/jira/browse/MNG-8256 6 天前
2b13a43c 7 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐