创建多模块项目
这里记录下怎样使用eclipse创建多模块的项目,也可以使用maven命令创建
- 要想创建一个多模块的项目,首先要创建一个父项目,打开eclipse
NEW –>project–>maven–>maven Project,点击下一步,进入new maven Project的Select project name and location界面
直接 next即可
在这个界面中选择maven-Archetype-site-simple,然后选择下一步,进入选择Enter a group id for the artifact的界面
groupId:一般写公司的域名
artifactId:写你的项目名如图,这就是创建好的父项目
- 创建子项目,我们知道对于每个项目都会有model层(bean),所以我们这里可以先创建一个model子项目,在我们创建的父项目上右键点击创建一个maven 项目
选择module,next
填上自己的子项目名称,next
next
然后在父项目中的pom.xml中多了一个
<modules>
<module>model</module>
</modules>
在子项目model的pom文件中
为了使整个pom文件的结构漂亮一点,我对它进行一定的结构的整理起码去除了多余的设置,尤其是黄色的警告,让我这有强迫症的孩子还是很捉急的,以此类推,其他的子项目也可以按照这个方法创建,现在我们可以补全dao,vo,utils,common等模块,先让这些子模块和父项目关联起来,之后会介绍子模块之类我们怎样相互关联
这里的one我是用来放controller层的,给前端或者app端提供接口,由于名字一下子真的想不到,所以就用one先,哈哈哈,下图是我项目的依赖关系,箭头指向的是需要加入自己的pom文件的子项目
而怎样把其他模块引入到一个模块里呢,相信大家都会怎么引入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>