Maven进修 (六) 搭建多模块企业级项目

    添加时间:2013-5-28 点击量:

    起首,前面几次进修已经学会了安装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/ 信赖地球人都知道这个!哈哈.....


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

    读书,不要想着实用,更不要有功利心。读书只为了自身的修养。邂逅一本好书如同邂逅一位知己,邂逅一个完美之人。有时心生敬意,有时怦然心动。仿佛你心底埋藏多年的话,作者替你说了出来,你们在时光深处倾心相遇的一瞬间,情投意合,心旷神怡。
    分享到: