淘淘商城项目—各个工程之间依赖关系详解

时间:2022-10-15 09:41:01

1.Maven常见的打包方式有:jar、war、pom

          pom工程一般都是父工程,管理jar包的版本、maven插件的版本、统一的依赖管理,是一个聚合工程。

          jar工程,很显然就是pom工程的子工程,由pom工程来管理。

          war工程,是web工程,可以直接放到tomcat下运行的工程。

淘淘商城项目—各个工程之间依赖关系详解

在进行项目,开发之前,我们可以配置自己Maven本地仓库的位置:

1.Window---->Refrences"  

2点击"User Settings(open file)"后面的Browse,选择我们的maven安装包下的settings.xml文件,在setting.xml中,我们可以指定本地仓库的位置,

<localRepository>自己的responsitory的位置</localRepository>

下面的"Local Repository"会自动显示我们自己创建的maven仓库地址,我们点击"Apply"和"OK"。这就配置好了本地仓库,经过本地镜像的配置,maven的下载速度将会是百倍的提升。

淘淘商城项目—各个工程之间依赖关系详解

2.新建taotao-parent ,taotao-common,taotao-manage(...),taotao-manage-web

  我们在taotao-parent的pom.xml文件统一管理整个淘淘商城项目的j依赖的jar包的版本,<dependencyManagement>只管理版本,不实际依赖。<dependency>才实际依赖。

    我们来给taotao-common工程的pom.xml文件添加依赖,common顾名思义,就是大家都会调用的,像公共组件。我们从taotao-parent工程中复制公共组件的依赖到taotao-common的pom.xml文件当中,taotao-common的pom.xml文件的内容如下,由于taotao-parent工程中定义了定义版本号,因此我们在taotao-common工程中不用定义组件的版本了。保存后,maven会自动下载相关依赖。

<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>  
  <parent>  
    <groupId>com.taotao</groupId>  
    <artifactId>taotao-parent</artifactId>  
    <version>0.0.1-SNAPSHOT</version>  
  </parent>  
  <groupId>com.taotao</groupId>  
  <artifactId>taotao-common</artifactId>  
  <version>0.0.1-SNAPSHOT</version>  
    
  <dependencies>  
        <!-- 时间操作组件 -->  
        <dependency>  
            <groupId>joda-time</groupId>  
            <artifactId>joda-time</artifactId>  
        </dependency>  
        <!-- Apache工具组件 -->  
        <dependency>  
            <groupId>org.apache.commons</groupId>  
            <artifactId>commons-lang3</artifactId>  
        </dependency>  
        <dependency>  
            <groupId>org.apache.commons</groupId>  
            <artifactId>commons-io</artifactId>  
        </dependency>  
        <dependency>  
            <groupId>commons-net</groupId>  
            <artifactId>commons-net</artifactId>  
        </dependency>  
        <!-- Jackson Json处理工具包 -->  
        <dependency>  
            <groupId>com.fasterxml.jackson.core</groupId>  
            <artifactId>jackson-databind</artifactId>  
        </dependency>  
        <!-- httpclient -->  
        <dependency>  
            <groupId>org.apache.httpcomponents</groupId>  
            <artifactId>httpclient</artifactId>  
        </dependency>  
        <!-- quartz任务调度框架 -->  
        <dependency>  
            <groupId>org.quartz-scheduler</groupId>  
            <artifactId>quartz</artifactId>  
        </dependency>  
        <!-- 单元测试 -->  
        <dependency>  
            <groupId>junit</groupId>  
            <artifactId>junit</artifactId>  
            <scope>test</scope>  
        </dependency>  
        <!-- 日志处理 -->  
        <dependency>  
            <groupId>org.slf4j</groupId>  
            <artifactId>slf4j-log4j12</artifactId>  
        </dependency>  
  </dependencies>  
</project>  

        接着新建taotao-manager聚合工程,我们在taotao-manager的pom.xml文件中添加对taotao-common的依赖。再分别新建taotao-manager-pojo,taotao-manager-dao,taotao-manager-interface,taotao-manager-service等工程。

        我们打开taoatao-manager-dao模块的pom.xml文件,并在其中添加对taotao-manager-pojo的依赖,另外由于dao层需要Mybatis、Mysql、分页、连接池的包,因此我们在pom.xml文件中添加对这些的依赖。

<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>  
  <parent>  
    <groupId>com.taotao</groupId>  
    <artifactId>taotao-manager</artifactId>  
    <version>0.0.1-SNAPSHOT</version>  
  </parent>  
  <artifactId>taotao-manager-dao</artifactId>  
  <dependencies>  
    <dependency>  
        <groupId>com.taotao</groupId>  
        <artifactId>taotao-manager-pojo</artifactId>  
        <version>0.0.1-SNAPSHOT</version>  
    </dependency>  
    <!-- Mybatis -->  
    <dependency>  
        <groupId>org.mybatis</groupId>  
        <artifactId>mybatis</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>org.mybatis</groupId>  
        <artifactId>mybatis-spring</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>com.github.miemiedev</groupId>  
        <artifactId>mybatis-paginator</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>com.github.pagehelper</groupId>  
        <artifactId>pagehelper</artifactId>  
    </dependency>  
    <!-- MySql -->  
    <dependency>  
        <groupId>mysql</groupId>  
        <artifactId>mysql-connector-java</artifactId>  
    </dependency>  
    <!-- 连接池 -->  
    <dependency>  
        <groupId>com.alibaba</groupId>  
        <artifactId>druid</artifactId>  
    </dependency>  
  </dependencies>  
</project>  

        同样的,我们打开taoatao-manager-interface模块的pom.xml文件,并在其中添加对taotao-manager-pojo的依赖,

        我们来创建taotao-manager-service模块,该模块是个war工程,既然taotao-manager工程是个聚合工程,可以聚合无数个模块,但是总归要靠一个war工程来将所有的模块聚合起来,因此我们才需要新建一个war工程,将来用于部署使用。下面我们来创建这个web.xml文件,如下图所示。因为是web工程,必须在web-app下新建WEB-INF,在WEB-INF下新建web-xml.

淘淘商城项目—各个工程之间依赖关系详解

        添加完web.xml文件之后,工程便不报错了,现在我们开始添加service的依赖。我们知道,服务层肯定要调用dao层,因此我们需要依赖taotao-common-dao,除此之外,服务层还要用spring,因此需要添加spring的包。taotao-manager-service的pom.xml文件的内容如下:

<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>  
  <parent>  
    <groupId>com.taotao</groupId>  
    <artifactId>taotao-manager</artifactId>  
    <version>0.0.1-SNAPSHOT</version>  
  </parent>  
  <artifactId>taotao-manager-service</artifactId>  
  <packaging>war</packaging>  
    
  <dependencies>  
    <dependency>  
        <groupId>com.taotao</groupId>  
        <artifactId>taotao-manager-dao</artifactId>  
        <version>0.0.1-SNAPSHOT</version>  
    </dependency>  
    <!-- Spring -->  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-context</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-beans</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-webmvc</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-jdbc</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-aspects</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-jms</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-context-support</artifactId>  
    </dependency>  
  </dependencies>  
</project>  

 搭建完了taotao-manager服务工程,下面我们来搭建taotao-manager-web表现层工程。新建的web工程由于缺少web.xml文件而报错,解决方法是在webapp目录下新建WEB-INF目录,并在该目录下新建web.xml文件。下面我们来配置pom.xml文件的依赖,表现层需要spring相关组件,taotao-common,并且需要jsp。pom.xml文件的内容如下:

<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>  
  <parent>  
    <groupId>com.taotao</groupId>  
    <artifactId>taotao-parent</artifactId>  
    <version>0.0.1-SNAPSHOT</version>  
  </parent>  
  <groupId>com.taotao</groupId>  
  <artifactId>taotao-manager-web</artifactId>  
  <version>0.0.1-SNAPSHOT</version>  
  <packaging>war</packaging>  
    
  <dependencies>  
    <!-- 依赖taotao-common -->  
    <dependency>  
        <groupId>com.taotao</groupId>  
        <artifactId>taotao-common</artifactId>  
        <version>0.0.1-SNAPSHOT</version>  
    </dependency>  
    <!-- Spring -->  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-context</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-beans</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-webmvc</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-jdbc</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-aspects</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-jms</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-context-support</artifactId>  
    </dependency>  
    <!-- JSP相关 -->  
    <dependency>  
        <groupId>jstl</groupId>  
        <artifactId>jstl</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>javax.servlet</groupId>  
        <artifactId>servlet-api</artifactId>  
        <scope>provided</scope>  
    </dependency>  
    <dependency>  
        <groupId>javax.servlet</groupId>  
        <artifactId>jsp-api</artifactId>  
        <scope>provided</scope>  
    </dependency>  
  </dependencies>  
</project>   
工程新建完成。这个工程的构建要搞懂他们之间的依赖关系。