本文Maven来构建一个多模块的web项目,并且对maven的打包根据环境的不同,会去加载相应的配置文件。
一、创建parent项目
1、选择maven project
2、打包类型选择pom。
3、创建成功后,结构如下
4、删除src目录
5、打开pom文件,内容应该如下(根据版本不同,内容可能会稍有不同。)
<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.demo</groupId> <artifactId>demo-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> </project>
二、创建domain模块
1、选中parent项目,并右击后new一个想的maven,这次选择的是maven module
2、创建成功后的结构如下
3、打开 parent的pom文件,会发现内容有增加
这样 parent的子模块 domain的创建已经成功。
三、创建dao模块
1、同样的操作,创建dao模块。
2、创建成功后,结构如下
3、由于dao模块需要引用domain的类,所以在dao的pom文件中添加依赖
<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> <parent> <groupId>com.demo</groupId> <artifactId>demo-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>demo-dao</artifactId> <!--dao需要使用到domain中的类,domain模块的依赖--> <dependencies> <dependency> <groupId>com.demo</groupId> <artifactId>demo-domain</artifactId> <version>${project.version}</version> </dependency> </dependencies> </project>
四、创建service模块
1、相同的步骤创建service模块
2、创建成功,结构如下
3、同理,service需要用到dao的类,所以pom中添加依赖
<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> <parent> <groupId>com.demo</groupId> <artifactId>demo-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>demo-service</artifactId> <dependencies> <!--service依赖dao和domain但是我们只需添加dao的依赖即可,因为dao已经依赖了domain --> <dependency> <groupId>com.demo</groupId> <artifactId>demo-dao</artifactId> <version>${project.version}</version> </dependency> </dependencies> </project>
4、各个项目的依赖如下
dao添加domain的依赖,而service添加了到dao的依赖,所以service中也有了domain的依赖,这个和类的继承差不多
五、创建web模块
1、web模块的创建和其他的有些不同,packing应选择war
2.创建成功结构如下
3、对web工程添加依赖。pom文件如下
<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> <parent> <groupId>com.demo</groupId> <artifactId>demo-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>demo-web</artifactId> <packaging>war</packaging> <dependencies> <dependency> <groupId>com.demo</groupId> <artifactId>demo-service</artifactId> <version>${project.version}</version> </dependency> </dependencies> </project>
4、maven创建的web工程和我平时所以使用的有些不同,可以看到webapp下并没有web.xml文件
5、右击web项目,选择perproties
6、先取消dynamic 并apply
7、在重现选中dynamic后,版本改为3.0,java 的版本改为1.6,点击
9、修改成功后的路径如下
好了,现在一个完整的多模块的项目已已经搭建好了,但是现在还有一个问题,如果使项目在不同的环境下,加载对应的配置文件?
如果每一次部署都去修改配置文件,那调试次数过多的话,更改配置文件会让人疯掉的!
下次继续