Maven(三)——Maven管理多模組Web專案例子
阿新 • • 發佈:2019-01-27
- 在實際的開發中,一個大專案都是由多個子專案組成的,這些子專案之間可以互相依賴,互相呼叫。
- maven可以方便的執行多專案間的管理。
以前面的Restaurant專案為例,把做黃燜雞的程式碼放到Kitchen專案中,讓Restaurant專案呼叫Kitchen專案。
到maven-restaurant下, 執行mvn archetype:generate命令,建立名為Kitchen的Java專案:
mvn archetype:generate -DgroupId=com.meteor -DartifactId=Kitchen -Dpackage=com.meteor -Dversion=1.0 .0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart
- 在src/main/java/com/meteor下建立makeBraisedChicken類
package main.java.com.meteor;
public class Kitchen {
public static String makeBraisedChicken(String size, String spicy) {
if (size == null) {
size = "small";
}
if (spicy == null) {
spicy = "very spicy";
}
StringBuffer s = new StringBuffer();
s.append("<html><body>\n")
.append("<h1> BraisedChicken with ")
.append(size + " and " + spicy)
.append("</h1>\n" )
.append("</body></html>");
return s.toString();
}
}
- 修改專案間的依賴關係
- 首先,在maven-restaurant下建立pom.xml,作為父模組,由Restaurant和Kitchen兩個模組組成
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.meteor</groupId>
<artifactId>restaurant-parent</artifactId>
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
<name>Multi modules demo</name>
<modules>
<module>Restaurant</module>
<module>Kitchen</module>
</modules>
</project>
- 分別在Kitchen模組和Restaurant模組的pom.xml檔案新增以下程式碼,設定父模組。
<parent>
<groupId>com.meteor</groupId>
<artifactId>restaurant-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
- 由於做黃燜雞的程式碼放到了Kitchen專案中,所以Restaurant專案要依賴Kitchen專案,呼叫其makeBraisedChicken方法。
- 在Restaurant專案中的dependencies節點下,新增:
<dependency>
<groupId>com.meteor</groupId>
<artifactId>Kitchen</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
- 到Restaurant中的BraisedChickenServlet下,修改程式碼為:
package com.meteor;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class BraisedChickenServlet extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
PrintWriter writer = response.getWriter();
String size = request.getParameter("size");
String spicy = request.getParameter("spicy");
String chicken = main.java.com.meteor.Kitchen.makeBraisedChicken(size, spicy);
writer.println(chicken);
}
}
- 在maven-restaurant下執行 mvn install
- 在Restaurant中執行 mvn tomcat7:run