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

来源:互联网 发布:北京鼎泰网络推广公司 编辑:程序博客网 时间:2024/05/20 10:12

创建多模块项目

这里记录下怎样使用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>

源代码

0 0