1. 程式人生 > >Maven 聚合專案建立

Maven 聚合專案建立

第一步:建立父工程

右擊空白處,new 建立新的 maven 工程

 

這裡跳過預設的骨架,使用自動義的骨架

 

這裡父工程必須使用pom打包方式

 

 

第二步:建立子工程

右擊空白處,new建立新maven工程

 

跳過預設骨架,輸入子工程名,並引用父工程

 

定義子工程,這裡是以表現層為例,是web工程,所以打包方式為war,如果是其他非web工程就可以打包成jar,這一點需要注意。

 

其他工程步驟類似,需要注意的是打包方式的選擇。

工程建立完成後現象:

所有的子工程目錄不是單獨的存在,而是直接儲存在父工程目錄下。

 

 

web專案建立完後,會有如下錯誤:

 

解決方案:

如果WebContent/WEB-INF/web.xml檔案存在,需要在pom.xml檔案的<build>節點中,加上maven-war-plugin外掛配置。

 1 <plugins>
 2     <plugin>
 3         <groupId>org.apache.maven.plugins</groupId>
 4         <artifactId>maven-war-plugin</artifactId>
 5
<version>3.0.0</version> 6 <configuration> 7 <webResources> 8 <resource> 9 <directory>WebContent</directory> 10 </resource> 11 </webResources> 12 </configuration> 13
</plugin> 14 </plugins>

 

如果WebContent/WEB-INF/web.xml檔案不存在,則按下面的方式配置。

 1 <plugins>
 2     <plugin>
 3         <groupId>org.apache.maven.plugins</groupId>
 4         <artifactId>maven-war-plugin</artifactId>
 5         <version>3.0.0</version>
 6         <configuration>
 7             <failOnMissingWebXml>false</failOnMissingWebXml>
 8         </configuration>
 9     </plugin>
10 </plugins>

 

web工程完整的pom.xml如下:

 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 3     <modelVersion>4.0.0</modelVersion>
 4     <parent>
 5         <groupId>com.maven.manage</groupId>
 6         <artifactId>maven-manage</artifactId>
 7         <version>0.0.1-SNAPSHOT</version>
 8     </parent>
 9     <artifactId>maven-manage-web</artifactId>
10     <packaging>war</packaging>
11     
12     <build>
13         <plugins>
14             <plugin>
15                 <groupId>org.apache.maven.plugins</groupId>
16                 <artifactId>maven-war-plugin</artifactId>
17                 <version>3.0.0</version>
18                 <configuration>
19                     <failOnMissingWebXml>false</failOnMissingWebXml>
20                 </configuration>
21             </plugin>
22         </plugins>
23     </build>
24     
25 </project>

 

 

 

聚合工程的完整目錄

 

 

 

父工程pom.xml內容

 

 

硬碟中聚合工程儲存目錄結構: