maven(一)----------创建多模块项目

创建多模块项目

这里记录下怎样使用eclipse创建多模块的项目,也可以使用maven命令创建

  1. 要想创建一个多模块的项目,首先要创建一个父项目,打开eclipse
    NEW –>project–>maven–>maven Project,点击下一步,进入new maven Project的Select project name and location界面

image

直接 next即可

image

在这个界面中选择maven-Archetype-site-simple,然后选择下一步,进入选择Enter a group id for the artifact的界面

image

groupId:一般写公司的域名
artifactId:写你的项目名如图,这就是创建好的父项目

image

  1. 创建子项目,我们知道对于每个项目都会有model层(bean),所以我们这里可以先创建一个model子项目,在我们创建的父项目上右键点击创建一个maven 项目

image
选择module,next

image

填上自己的子项目名称,next

image

next

image

然后在父项目中的pom.xml中多了一个

<modules>
    <module>model</module>
</modules>

在子项目model的pom文件中

image

为了使整个pom文件的结构漂亮一点,我对它进行一定的结构的整理起码去除了多余的设置,尤其是黄色的警告,让我这有强迫症的孩子还是很捉急的,以此类推,其他的子项目也可以按照这个方法创建,现在我们可以补全dao,vo,utils,common等模块,先让这些子模块和父项目关联起来,之后会介绍子模块之类我们怎样相互关联

image

这里的one我是用来放controller层的,给前端或者app端提供接口,由于名字一下子真的想不到,所以就用one先,哈哈哈,下图是我项目的依赖关系,箭头指向的是需要加入自己的pom文件的子项目

image

而怎样把其他模块引入到一个模块里呢,相信大家都会怎么引入maven其他的jar,同理,我们也可以这样引入我们其他模块,把它当做一个jar包使用,为了各个模块的版本统一我们都是在父类的pom文件里设置jar的版本号,然后各个子项目的jar都是在父类的pom引入版本号的,所以父类的pom文件为

<?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.tangqijiayou</groupId>
    <artifactId>calla</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>pom</packaging>
    <name>calla</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <modules>
        <module>model</module>
        <module>common</module>
        <module>vo</module>
        <module>resources</module>
        <module>utils</module>
        <module>dao</module>
        <module>service</module>
        <module>one</module>
        <module>timer</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <!-- own modules -->
            <dependency>
                <groupId>com.tangqijiayou.calla</groupId>
                <artifactId>model</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.tangqijiayou.calla</groupId>
                <artifactId>utils</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.tangqijiayou.calla</groupId>
                <artifactId>service</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.tangqijiayou.calla</groupId>
                <artifactId>dao</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.tangqijiayou.calla</groupId>
                <artifactId>vo</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.tangqijiayou.calla</groupId>
                <artifactId>resources</artifactId>
                <version>${resourcesVersion}-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.tangqijiayou.calla</groupId>
                <artifactId>common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <!-- /own modules -->
        </dependencies>
    </dependencyManagement>
<profiles>
        <profile>
            <!-- 本地开发环境 -->
            <id>own</id>
            <properties>
                <profiles.active>conf.own</profiles.active>
                <tomcat.manager.url>http://192.168.1.94/manager/text</tomcat.manager.url>
                <tomcat.manager.username>admin</tomcat.manager.username>
                <tomcat.manager.password>busdeploy2015</tomcat.manager.password>
                <resourcesVersion>1.0.0</resourcesVersion>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
    </profiles>


</project>

这里要注意的是,module的顺序,因为install的时候是按照这个顺序生成jar 的,所有我们的依赖最少的子项目要放前面,保证它所依赖的jar已经存在。子项目引用其他项目这是在依赖中简单的加入下面这句

<dependency>
    <groupId>com.tangqijiayou.calla</groupId>
    <artifactId>model</artifactId>
</dependency>

而one这个项目我们是需要把它打成war的,所以在pom文件里加入

<packaging>war</packaging>
<name>one</name>

源代码

阅读更多

没有更多推荐了,返回首页