一般项目都是讲一个完整的项目,按层分成多个项目。如何利用maven构建多模块项目呢?
步骤:
1.创建demo-parent项目。
mvn archetype:generate -DgroupId=maven.test.mulmodel -DartifactId=demo-parent
删除生成的src文件,以及修改pom文件。将packaging改为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>maven.test.mulmodel</groupId>
<artifactId>demo-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>demo-parent</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
- 创建 demo-dao模块项目
mvn archetype:generate -DgroupId=maven.test.mulmodel -DartifactId=demo-dao
进入到demo-dao,修改pom文件。
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>maven.test.mulmodel</groupId>
<artifactId>demo-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>demo-dao</artifactId>
<name>demo-dao</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
打开demo-parent的pom.xml。可以看到自动添加了module。如果使用的版本没有生成,则自己在该文件进行添加。
3.创建 demo-service项目
mvn archetype:generate -DgroupId=maven.test.mulmodel -DartifactId=demo-service
打开demo-service项目下pom文件,去掉多余的groupId、version。以及增加demo-dao项目的依赖。
打开demo-parent的pom查看module是否增加了demo-service,如果没有则手动添加。
4.创建demo-web项目,该项目为web项目。并且依赖demo-service项目。
mvn archetype:generate -DgroupId=maven.test.mulmodel -DartifactId=demo-web -DarchetypeArtifactId=maven-archetype-webapp
打开demo-web项目下的pom文件,将多余的groupId和version删除。然后增加对demo-service的依赖。
打开demo-parent的pom查看是否增加了module。
5.打包测试,在demo-parent目录下执行该命令。
mvn clean package -Dmaven.test.skip=true
6.运行web项目测试。
-
如果webapp目录下没有index.jsp则手动创建一个文件。
-
添加jetty服务器。在demo-web下增加运行组件jetty.
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>maven.test.mulmodel</groupId>
<artifactId>demo-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>demo-web</artifactId>
<packaging>war</packaging>
<name>demo-web Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>maven.test.mulmodel</groupId>
<artifactId>demo-service</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<finalName>demo-web</finalName>
<plugins>
<!--添加相关Jetty插件-->
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.12.v20180830</version>
</plugin>
</plugins>
</build>
</project>
. 运行
1)先将项目安装到本地
mvn clean install
2)运行项目
mvn jetty:run