maven项目多个module工程搭建

创建父工程

maven多模块项目需要一个父工程来聚合各个子模块,不过其实就是需要一个父pomxml,
主要作用是声明子模块,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<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> <!-- maven版本号-->
  <groupId>com.iwooto</groupId>      <!-- maven包路径-->
  <artifactId>maventest</artifactId> <!-- maven包名-->
  <packaging>pom</packaging>		 <!-- maven父工程的packaging类型必须为pom-->
  <version>${project.version}</version> <!-- 项目版本-->
  <name>maventest</name>                 <!-- 项目名称-->
  <url>http://maven.apache.org</url>     <!-- maven库-->
  <properties>
      <project.version>0.0.1</project.version>
  </properties>
  <modules>
  	<module>mavenweb</module>   <!-- 第一个web项目子模块-->
  	<module>mavenadmin</module> <!-- 第二个web项目子模块-->
  	<module>mavenjava</module>  <!-- 第一个java项目子模块,当然也可以已打包的形式引入-->
  </modules>
  <dependencies> <!-- 父工程下面的所有子模块都会继承的引入下面的依赖包 -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
  <dependencyManagement> <!-- 只有父工程会引入以下的依赖包,对子模块无影响-->
	  <dependencies>
		    <dependency>
		    	<groupId>com.iwooto</groupId>
		    	<artifactId>mavenadmin</artifactId>
		    	<version>${project.version}</version>
		    	<type>war</type>
		    </dependency>
		    <dependency>
		    	<groupId>com.iwooto</groupId>
		    	<artifactId>mavenweb</artifactId>
		    	<version>${project.version}</version>
		    	<type>war</type>
		    </dependency>
		    <dependency>
		    	<groupId>com.iwooto</groupId>
		    	<artifactId>mavenjava</artifactId>
		    	<version>${project.version}</version>
		    </dependency> 
	  </dependencies>
  </dependencyManagement>
</project>

创建子模块工程

目录结构

1
2
3
4
5
6
7
8
.
 |-- my-module1 
 |   `-- pom.xml 第一个web项目子模块
 |-- my-module2
 |   `-- pom.xml 第二个web项目子模块
 |-- my-module3
 |   `-- pom.xml 第一个java项目子模块
 `-- pom.xml     父模块

如果使用的是eclipse的话直接在父工程项目->右键->Maven->Add New Maven Module Project,剩下的和创建普通maven项目流程相同。

第一个web子模块(web项目主模块其他web项目会打包到该模块)pom.xml代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<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.iwooto</groupId>
    <artifactId>maventest</artifactId>
    <version>${project.version}</version>
  </parent>
  <artifactId>mavenweb</artifactId>
  <packaging>war</packaging>
  <name>mavenweb</name>
  <url>http://maven.apache.org</url>
  <dependencies>
	    <dependency> <!-- 被合并的子web项目,必须在主项目中添加依赖关系 -->
	    	<groupId>com.iwooto</groupId>
	    	<artifactId>mavenadmin</artifactId>
	    	<version>${project.version}</version>
	    	<type>war</type>
	    </dependency>
	    <dependency>
	    	<groupId>com.iwooto</groupId>
	    	<artifactId>mavenjava</artifactId>
	    	<version>${project.version}</version>
	    </dependency> 
  </dependencies>
    <build>  
        <finalName>maventest</finalName>  
        <plugins>  
            <!-- 合并多个war -->  
            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-war-plugin</artifactId>  
                <configuration>  
                	<!-- 过滤其他模块的web.xml文件 -->
                    <packagingExcludes>WEB-INF/web.xml</packagingExcludes>    
                    <overlays>  
                        <overlay>  
                            <groupId>com.iwooto</groupId>  
                            <artifactId>mavenadmin</artifactId>  
                        </overlay>  
                    </overlays>  
                </configuration>   
            </plugin>  
        </plugins>
        <!-- 配置项目的资源文件,可以是多个项目下的资源文件 --> 
        <resources>
        	<resource>
        		<directory>../mavenadmin/src/main/resources</directory>
        		 <excludes>    
                    <exclude>config/**</exclude>    
                </excludes>    
        	</resource>
        	<resource>
        		<directory>src/main/resources</directory>
        	</resource>
        </resources> 
    </build> 
</project>

第二个web子模块(该模块会打包到web主模块中)pom.xml代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<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.iwooto</groupId>
    <artifactId>maventest</artifactId>
    <version>${project.version}</version>
  </parent>
  <artifactId>mavenadmin</artifactId>
  <packaging>war</packaging>
  <name>mavenadmin</name>
  <url>http://maven.apache.org</url>
 	<build>  
        <plugins>  
            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-war-plugin</artifactId>  
                <configuration> 
                	<!-- 如果该模块没有web.xml文件的话,要进行一下声明 -->
                    <failOnMissingWebXml>false</failOnMissingWebXml>  
                </configuration>  
            </plugin>     
        </plugins>  
    </build>  
</project>

第一个java子模块pom.xml代码

1
2
3
4
5
6
7
8
9
10
<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.iwooto</groupId>
    <artifactId>maventest</artifactId>
    <version>${project.version}</version>
  </parent>
  <artifactId>mavenjava</artifactId>
  <name>mavenjava</name> 
</project>

web项目合并当着需要注意一下记得

  1. 被合并的子web项目packaging属性必须是war
  2. 被合并的子web项目,必须在主项目中添加依赖关系。
  3. 被合并的子web项目中,如果没有web.xml,则需要在pom.xml中声明
  4. 在web项目主模块中的java build path 中添加子web项目的依赖,就可以直接调用子项目的方法咯(记得避免循环依赖哦)
  5. 被合并的子web项目中的web.xml你可以选择性的放入合并内容当中(可以看情况需要进行合并)
  6. 配置文件继承相同的继承策略用于为 POM 本身。
    只要配置好以上内容,该多个模块的maven项目的主web模块就可以放到tomcat中运行起来啦。

添加以前的项目作为子模块到新的项目当中

其实只需要修改一下父工程pom.xml引用子模块的pom.xml文件的路径
和子模块引用pom.xml引用父工程的pom.xml的路径就可以啦
父工程与子模块平级的情况
目录结构

1
2
3
4
5
6
7
8
9
.
|-- my-module1
|   `-- pom.xml
|-- my-module2
|   `-- pom.xml
|-- my-module3
|   `-- pom.xml
 `-- parent
     `-- pom.xml

父工程pom.xml修改如下内容:
修改前:

1
2
3
4
5
<modules>
	<module>mavenweb</module>   <!-- 第一个web项目子模块-->
	<module>mavenadmin</module> <!-- 第二个web项目子模块-->
	<module>mavenjava</module>  <!-- 第一个java项目子模块,当然也可以已打包的形式引入-->
</modules>

修改后:

1
2
3
4
5
<modules>
	<module>../mavenweb</module>   <!-- 第一个web项目子模块-->
	<module>../mavenadmin</module> <!-- 第二个web项目子模块-->
	<module>../mavenjava</module>  <!-- 第一个java项目子模块,当然也可以已打包的形式引入-->
</modules>

子模块pom.xml修改以下内容:
修改前:

1
2
3
4
5
<parent>
  <groupId>com.iwooto</groupId>
  <artifactId>maventest</artifactId>
  <version>${project.version}</version>
</parent>

修改后:

1
2
3
4
5
<parent>
  <groupId>com.iwooto</groupId>
  <artifactId>../maventest</artifactId>
  <version>${project.version}</version>
</parent>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建一个 Maven 项目的详细步骤如下: 1. 下载并安装 JDK 在 Oracle 官网下载并安装 JDK,确保 JDK 已经正确安装并配置好环境变量。 2. 下载并安装 Maven 在 Apache 官网下载并安装 Maven,确保 Maven 已经正确安装并配置好环境变量。 3. 创建 Maven 项目 打开命令行界面,进入到想要创建 Maven 项目目录下,输入以下命令: ``` mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false ``` 其中,`com.example` 是项目的包名,`my-app` 是项目的名称,`maven-archetype-quickstart` 是项目的模板。执行该命令后,Maven 就会自动创建项目结构和必需的文件。 4. 添加依赖 编辑 pom.xml 文件,添加项目所需的依赖,例如: ``` <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> ``` 5. 编写代码 在 src/main/java 目录下编写项目代码,例如: ``` package com.example; public class App { public static void main(String[] args) { System.out.println("Hello World!"); } } ``` 6. 编译项目 在命令行界面中进入到项目目录下,执行以下命令: ``` mvn compile ``` Maven 将会自动下载项目所需的依赖并编译项目。 7. 运行项目 在命令行界面中进入到项目目录下,执行以下命令: ``` mvn exec:java -Dexec.mainClass="com.example.App" ``` Maven 将会自动运行项目。 以上就是搭建一个 Maven 项目的详细步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值