zoukankan      html  css  js  c++  java
  • Maven搭建多模块企业级项目

    首先,前面几次学习已经学会了安装maven,如何创建maven项目等,最近的学习,终于有点进展了,搭建一下企业级多模块项目。

    好了,废话不多说,具体如下:

    首先新建一个maven项目,pom.xml的文件如下:

    搭建多模块项目,必须要有一个packaging为pom的根目录。创建好这个maven项目后,我们对着项目右键-->new

    输入你的项目名称

    这里就不重复说创建项目了,创建好的目录结构在eclipse中如下:

    说明一下这些项目具体都是干嘛的:

    easyframework-model:数据模型,与数据库表字段对应的实体类

    easyframework-core:核心业务项目。主要是Service处理业务逻辑

    easyframework-persist:数据持久层,操作低层数据库。

    easyframework-utils:工具类,所有工具类都提取出来写在这个项目中。

    easyframework-web :这个就是整个项目的web层了,页面的显示以及控制层

    备注:创建这些项目的时候,只有easyframework-web是web项目即maven的:maven-archetype-webapp,其他的都是java项目:maven-archetype-quicktart

    打开easyframework-root的pom.xml文件,你会看到模块化是这样的:

    接下来是配置各个模块的依赖关系,我个人认为的项目是这样依赖的,不知道对不对,呵呵....

    举个例子easyframework-web这个项目依赖easyframework-core(业务核心)和easyframework-model(实体类),easyframework-utils(公共的工具类)这个三个模块。

    那么在怎么在easyframework-web的pom.xml中体现呢,具体如下:

     

    打开项目的maven依赖你会发现,已经依赖了这三个项目

    但是你应该会感觉到奇怪,为什么会有那么jar包,明明只引用了这三个项目,哪来的那么多jar包。

    你会发现,我再pom.xml文件中,有个parent节点,继承了根节点的pom,这就是maven的项目继承依赖,会从父POM中继承一些值。这对构建一个大型的系统来说很有必要

    这样的话你就不需要一遍又一遍的重复添加同样的依赖元素,当然,如果你在子项目中也有同样的依赖,则会覆盖父POM中的值。

    父POM的的依赖如下:

    复制代码
      1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      2     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      3     <modelVersion>4.0.0</modelVersion>
      4     <groupId>com.easyframework</groupId>
      5     <artifactId>easyframework-root</artifactId>
      6     <packaging>pom</packaging>
      7     <version>1.0</version>
      8     <name>easyframework-root</name>
      9     <url>http://maven.apache.org</url>
     10     <modules>
     11         <module>easyframework-web</module>
     12         <module>easyframework-persist</module>
     13         <module>easyframework-core</module>
     14         <module>easyframework-utils</module>
     15         <module>easyframework-model</module>
     16     </modules>
     17     <properties>
     18         <!--指定Maven用什么编码来读取源码及文档 -->
     19         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     20         <!--指定Maven用什么编码来呈现站点的HTML文件 -->
     21         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
     22         <mysql.version>5.1.25</mysql.version>
     23         <hibernate.version>4.2.2.Final</hibernate.version>
     24         <spring.version>3.2.3.RELEASE</spring.version>
     25         <aspectj.version>1.7.2</aspectj.version>
     26     </properties>
     27     <repositories>
     28         <repository>
     29             <id>springsource-repo</id>
     30             <name>SpringSource Repository</name>
     31             <url>http://repo.springsource.org/release</url>
     32         </repository>
     33     </repositories>
     34     <dependencies>
     35     
     36         <!-- log4j -->
     37         <dependency>
     38             <groupId>log4j</groupId>
     39             <artifactId>log4j</artifactId>
     40             <version>1.2.17</version>
     41         </dependency>
     42         <!-- junit -->
     43         <dependency>
     44             <groupId>junit</groupId>
     45             <artifactId>junit</artifactId>
     46             <version>4.11</version>
     47             <scope>test</scope>
     48         </dependency>
     49         <!-- mysql数据库驱动 -->
     50         <dependency>
     51             <groupId>mysql</groupId>
     52             <artifactId>mysql-connector-java</artifactId>
     53             <version>${mysql.version}</version>
     54         </dependency>
     55         <!-- hibernate4 -->
     56         <dependency>
     57             <groupId>org.hibernate</groupId>
     58             <artifactId>hibernate-core</artifactId>
     59             <version>${hibernate.version}</version>
     60         </dependency>
     61         <!-- aspectjweaver -->
     62         <dependency>
     63             <groupId>org.aspectj</groupId>
     64             <artifactId>aspectjweaver</artifactId>
     65             <version>${aspectj.version}</version>
     66         </dependency>
     67         <!-- spring3 -->
     68         <dependency>
     69             <groupId>org.springframework</groupId>
     70             <artifactId>spring-core</artifactId>
     71             <version>${spring.version}</version>
     72         </dependency>
     73         <dependency>
     74             <groupId>org.springframework</groupId>
     75             <artifactId>spring-context</artifactId>
     76             <version>${spring.version}</version>
     77         </dependency>
     78         <dependency>
     79             <groupId>org.springframework</groupId>
     80             <artifactId>spring-jdbc</artifactId>
     81             <version>${spring.version}</version>
     82         </dependency>
     83         <dependency>
     84             <groupId>org.springframework</groupId>
     85             <artifactId>spring-beans</artifactId>
     86             <version>${spring.version}</version>
     87         </dependency>
     88         <dependency>
     89             <groupId>org.springframework</groupId>
     90             <artifactId>spring-web</artifactId>
     91             <version>${spring.version}</version>
     92         </dependency>
     93         <dependency>
     94             <groupId>org.springframework</groupId>
     95             <artifactId>spring-expression</artifactId>
     96             <version>${spring.version}</version>
     97         </dependency>
     98         <dependency>
     99             <groupId>org.springframework</groupId>
    100             <artifactId>spring-orm</artifactId>
    101             <version>${spring.version}</version>
    102         </dependency>
    103     </dependencies>
    104     <build>
    105         <finalName>easyframework-root</finalName>
    106         <plugins>
    107             <plugin>
    108                 <artifactId>maven-compiler-plugin</artifactId>
    109                 <configuration>
    110                     <source>1.6</source>
    111                     <target>1.6</target>
    112                 </configuration>
    113             </plugin>
    114         </plugins>
    115     </build>
    116 </project>
    复制代码

    当然这个父POM只是一个例子,你可以根据自己的配置添加相关的依赖,这里给一个我认为是最好用的仓库:

    http://mvnrepository.com/ 相信地球人都知道这个!哈哈.....

    到此就搭建好了企业级多模块的项目环境了。

    转自:http://www.cnblogs.com/quanyongan/archive/2013/05/28/3103243.html

  • 相关阅读:
    sublime配置文件设置解释器
    pyinstaller 简单用法
    python模块引入问题集锦与解析
    服务器上Ubuntu系统安装
    window下共存python2和python3
    python-docx about unusual operating
    docker
    网站开发(周日):项目部署上线(实战)
    网站开发(周六):项目本地调试(实战)
    网站开发(周五):项目前端页面开发(实战)
  • 原文地址:https://www.cnblogs.com/sanduweiliangxtx/p/6580460.html
Copyright © 2011-2022 走看看