maven创建父子依赖项目

  • maven创建父子依赖项目:
  • 参考思路:
  • 思维图:
  • 三种项目示例:
  • jar:控制台项目:
  • war:web项目:
  • war:web项目:(待写)
  • 案例:横向拆分(按照项目结构进行拆分)
  • 创建项目:
  • 创建父级项目:
  • 父级项目的功能/功能:
  • 补充:项目目录下的<font color="red">idea进行隐藏:
  • 创建子级项目:
  • 补:三层结构:
  • 创建dao子级项目:
  • 创建service子级项目:(和创建dao子级项目相同)
  • 创建web子级项目:(和创建dao子级项目不同)
  • 父级项目和自己项目之间的联系:
  • <font color="red">所有的jar包依赖必须在父级项目中pox.xml中引用!
  • 在父级项目下pom.xml引入需要的jar包依赖:
  • 效果/问题/解决展示:
  • 父级统一管理jar包依赖:
  • 引用父级jar包依赖:
  • 子级dao进行引用父级的jar包依赖:
  • 子级web进行引用父级的jar包依赖:
  • 引用兄弟项目:
  • 子级dao在pom.xml中引用兄弟的项目:
  • 子级web在pom.xml中引用兄弟项目:
  • 修改子级web项目下web.xml版本配置:
  • 修改子级web项目下pom.xml编译版本:
  • 配置tomcatb:
  • 运行结果:
  • 项目代码整体结构:
  • 代码:
  • 父级pom.xml:
  • 子级dao:
  • dao:
  • StudentDAOImpl:
  • util:
  • BaseDAO:
  • pom.xml:
  • 子级service:
  • StudentServletImpl:
  • pom.xml:
  • 子级web:
  • web.xml:
  • pom.xml:
  • pom.xml:

单体项目:目前的项目都是单体项目,一个项目的结构。
父子依赖项目:可以嵌套很多层的项目结构,(父亲-儿子-孙子-重孙子…|项目套项目|大项目套小项目|等)是必须要会的!后期用springcloud开发就要用父子依赖结构的项目。

maven创建父子依赖项目:

参考思路:

maven父子都指定版本 maven 父子项目_前端


maven父子都指定版本 maven 父子项目_maven_02


maven父子都指定版本 maven 父子项目_maven_03


引用兄弟项目:

maven父子都指定版本 maven 父子项目_前端_04

思维图:

两种拆分项目的方式:横向拆分(按照项目结构拆分)、纵向拆分(按照业务模块拆分)

maven父子都指定版本 maven 父子项目_java_05

三种项目示例:

jar:控制台项目:

maven父子都指定版本 maven 父子项目_xml_06

war:web项目:

maven父子都指定版本 maven 父子项目_maven_07

war:web项目:(待写)

案例:横向拆分(按照项目结构进行拆分)

创建项目:

创建父级项目:

首先创建maven父类项目(这里的父级项目为普通的jar项目,具体要根据需要而定!)

maven父子都指定版本 maven 父子项目_maven父子都指定版本_08


maven父子都指定版本 maven 父子项目_java_09


maven父子都指定版本 maven 父子项目_maven_10


maven父子都指定版本 maven 父子项目_前端_11

父级项目的功能/功能:

父级项目是用来用来组织子级项目。 不需要写代码。将项目目录下的src直接删掉!

maven父子都指定版本 maven 父子项目_xml_12

补充:项目目录下的idea进行隐藏:

maven父子都指定版本 maven 父子项目_maven父子都指定版本_13


maven父子都指定版本 maven 父子项目_java_14

创建子级项目:

maven父子都指定版本 maven 父子项目_maven父子都指定版本_15

补:三层结构:

dao被sevrice依赖,sevrice被web依赖。
三层结构,可分为三个子级项目,分别是dao、servlet、web。

创建dao子级项目:

maven父子都指定版本 maven 父子项目_前端_16


maven父子都指定版本 maven 父子项目_java_17


maven父子都指定版本 maven 父子项目_maven_18

创建service子级项目:(和创建dao子级项目相同)

maven父子都指定版本 maven 父子项目_xml_19


maven父子都指定版本 maven 父子项目_xml_20


maven父子都指定版本 maven 父子项目_maven_21

创建web子级项目:(和创建dao子级项目不同)

maven父子都指定版本 maven 父子项目_java_22


maven父子都指定版本 maven 父子项目_前端_23


maven父子都指定版本 maven 父子项目_maven父子都指定版本_24

maven父子都指定版本 maven 父子项目_java_25


maven父子都指定版本 maven 父子项目_maven父子都指定版本_26

父级项目和自己项目之间的联系:

父级的pom.xml:

maven父子都指定版本 maven 父子项目_maven父子都指定版本_27


dao子级的pom.xml:

maven父子都指定版本 maven 父子项目_java_28


service子级的pom.xml:

maven父子都指定版本 maven 父子项目_maven父子都指定版本_29


web子级的pom.xml:

maven父子都指定版本 maven 父子项目_前端_30


maven父子都指定版本 maven 父子项目_maven_31

所有的jar包依赖必须在父级项目中pox.xml中引用!

①问题/解决:子级的jar包依赖要保持一致,统一交给父级进行引入(dependency/ies),便于管理。
②问题/解决:父级引用依赖之后,所有子级继承父级所有的jar包依赖。但是有些子级根本就不需要某些jar包依赖。这时需要将所有子级的jar包依赖统一由父级进行引入和管理(dependencyManagement)【不做实际引用,只做管理】,子级根据需要从父级那里进行引入。

在父级项目下pom.xml引入需要的jar包依赖:

maven父子都指定版本 maven 父子项目_maven父子都指定版本_32


pom.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<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.yzh7</groupId>
    <artifactId>maven_0811_parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>dao</module>
        <module>service</module>
        <module>web</module>
    </modules>

    <properties>
        <webVersion>3.1</webVersion>
        <servlet-version>4.0.1</servlet-version>
        <jsp-version>2.2</jsp-version>
        <jstl-version>1.2</jstl-version>
        <spring-version>4.1.6.RELEASE</spring-version>
        <commons-dbcp-version>1.4</commons-dbcp-version>
        <aspectjweaver-version>1.8.6</aspectjweaver-version>
        <mybatis-version>3.4.6</mybatis-version>
        <mybatis-spring-version>1.3.3</mybatis-spring-version>
        <log4j-version>1.2.9</log4j-version>
        <mysql-connector-java-version>8.0.11</mysql-connector-java-version>
        <jackson-version>2.5.0</jackson-version>
        <commons-fileupload-version>1.3.1</commons-fileupload-version>
    </properties>

    <dependencies>
        <!-- 添加javaEE支持 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>${servlet-version}</version>
            <!-- provided只在编译时支持,发布时不拷贝文件 -->
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>${jsp-version}</version>
            <!-- provided只在编译时支持,发布时不拷贝文件 -->
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>${jstl-version}</version>
        </dependency>
        <!--  junit   -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <!-- dbcp连接池 -->
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>${commons-dbcp-version}</version>
        </dependency>
        <!-- jackson json支持包 -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson-version}</version>
        </dependency>
        <!-- mysql驱动类 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-connector-java-version}</version>
        </dependency>

    </dependencies>


</project>
效果/问题/解决展示:
父级统一管理jar包依赖:

点击刷新父级pom.xml文件及右侧工具栏。可以看出所有的子级继承了父级的jar包依赖!

maven父子都指定版本 maven 父子项目_前端_33


maven父子都指定版本 maven 父子项目_java_34


为了避免有些子级引用父类中不需要的jar包依赖。jar包依赖由父类进行统一的引入和管理(dependencyManagement),由子级根据需要从父类那里引用!

引用父级jar包依赖:

maven父子都指定版本 maven 父子项目_maven父子都指定版本_35


修改后的pom.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<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.yzh7</groupId>
    <artifactId>maven_0811_parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>dao</module>
        <module>service</module>
        <module>web</module>
    </modules>

    <properties>
        <webVersion>3.1</webVersion>
        <servlet-version>4.0.1</servlet-version>
        <jsp-version>2.2</jsp-version>
        <jstl-version>1.2</jstl-version>
        <spring-version>4.1.6.RELEASE</spring-version>
        <commons-dbcp-version>1.4</commons-dbcp-version>
        <aspectjweaver-version>1.8.6</aspectjweaver-version>
        <mybatis-version>3.4.6</mybatis-version>
        <mybatis-spring-version>1.3.3</mybatis-spring-version>
        <log4j-version>1.2.9</log4j-version>
        <mysql-connector-java-version>8.0.11</mysql-connector-java-version>
        <jackson-version>2.5.0</jackson-version>
        <commons-fileupload-version>1.3.1</commons-fileupload-version>
    </properties>

    <!-- dependencyManagement 依赖管理-->
    <dependencyManagement>
        <dependencies>
            <!-- 添加javaEE支持 -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>${servlet-version}</version>
                <!-- provided只在编译时支持,发布时不拷贝文件 -->
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>${jsp-version}</version>
                <!-- provided只在编译时支持,发布时不拷贝文件 -->
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>jstl</groupId>
                <artifactId>jstl</artifactId>
                <version>${jstl-version}</version>
            </dependency>
            <!--  junit   -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.11</version>
                <scope>test</scope>
            </dependency>
            <!-- dbcp连接池 -->
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>${commons-dbcp-version}</version>
            </dependency>
            <!-- jackson json支持包 -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson-version}</version>
            </dependency>
            <!-- mysql驱动类 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql-connector-java-version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

然后进行刷新pom.xml:(可以看到父级子级都没有了dependencies)

maven父子都指定版本 maven 父子项目_maven_36

子级dao进行引用父级的jar包依赖:

maven父子都指定版本 maven 父子项目_java_37


maven父子都指定版本 maven 父子项目_maven_38


maven父子都指定版本 maven 父子项目_xml_39

补充:子级也可从父级引用jar包依赖,版本号由子级自己定义:

maven父子都指定版本 maven 父子项目_maven父子都指定版本_40


子级的版本号与父级不同。

maven父子都指定版本 maven 父子项目_java_41


编写代码:

maven父子都指定版本 maven 父子项目_xml_42


maven父子都指定版本 maven 父子项目_xml_43

子级web进行引用父级的jar包依赖:

maven父子都指定版本 maven 父子项目_前端_44

maven父子都指定版本 maven 父子项目_xml_45

引用兄弟项目:
子级dao在pom.xml中引用兄弟的项目:

maven父子都指定版本 maven 父子项目_xml_46


maven父子都指定版本 maven 父子项目_xml_47


刷新自己的pom.xml:

maven父子都指定版本 maven 父子项目_xml_48


引用即可:

maven父子都指定版本 maven 父子项目_xml_49

子级web在pom.xml中引用兄弟项目:

maven父子都指定版本 maven 父子项目_maven_50


maven父子都指定版本 maven 父子项目_java_51

修改子级web项目下web.xml版本配置:

maven父子都指定版本 maven 父子项目_maven_52

修改子级web项目下pom.xml编译版本:

maven父子都指定版本 maven 父子项目_前端_53

配置tomcatb:

maven父子都指定版本 maven 父子项目_前端_54


maven父子都指定版本 maven 父子项目_maven父子都指定版本_55

运行结果:

maven父子都指定版本 maven 父子项目_xml_56


maven父子都指定版本 maven 父子项目_java_57

项目代码整体结构:

maven父子都指定版本 maven 父子项目_maven父子都指定版本_58

代码:

父级pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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.yzh7</groupId>
    <artifactId>maven_0811_parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>dao</module>
        <module>service</module>
        <module>web</module>
    </modules>

    <properties>
        <webVersion>3.1</webVersion>
        <servlet-version>4.0.1</servlet-version>
        <jsp-version>2.2</jsp-version>
        <jstl-version>1.2</jstl-version>
        <spring-version>4.1.6.RELEASE</spring-version>
        <commons-dbcp-version>1.4</commons-dbcp-version>
        <aspectjweaver-version>1.8.6</aspectjweaver-version>
        <mybatis-version>3.4.6</mybatis-version>
        <mybatis-spring-version>1.3.3</mybatis-spring-version>
        <log4j-version>1.2.9</log4j-version>
        <mysql-connector-java-version>8.0.11</mysql-connector-java-version>
        <jackson-version>2.5.0</jackson-version>
        <commons-fileupload-version>1.3.1</commons-fileupload-version>
    </properties>

    <!-- dependencyManagement 依赖管理-->
    <dependencyManagement>
        <dependencies>
            <!-- 添加javaEE支持 -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>${servlet-version}</version>
                <!-- provided只在编译时支持,发布时不拷贝文件 -->
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>${jsp-version}</version>
                <!-- provided只在编译时支持,发布时不拷贝文件 -->
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>jstl</groupId>
                <artifactId>jstl</artifactId>
                <version>${jstl-version}</version>
            </dependency>
            <!--  junit   -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.11</version>
                <scope>test</scope>
            </dependency>
            <!-- dbcp连接池 -->
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>${commons-dbcp-version}</version>
            </dependency>
            <!-- jackson json支持包 -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson-version}</version>
            </dependency>
            <!-- mysql驱动类 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql-connector-java-version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>
子级dao:
dao:
StudentDAOImpl:
package com.dao;

import com.util.BaseDAO;

import java.util.List;
import java.util.Map;

public class StudentDAOImpl {
    //不标准的代码步骤
    public List<Map<String,Object>> listAll(){
        return BaseDAO.executeQuery("select * from studentInfo",null);
    }
}
util:
BaseDAO:
package com.util;

import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class BaseDAO {

	//四大金刚
	//驱动类
	private static final String DRIVER="com.mysql.cj.jdbc.Driver";
	//连接地址
	private static final String URL="jdbc:mysql://localhost:3306/70806_db?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai";
	//用户名
	private static final String USER="root";
	//密码
	private static final String PASSWORD="123456";

	//获取连接
	public static Connection getConnection(){

		Connection con = null;

		try{
			//加载驱动类
			Class.forName(DRIVER);
			//获取连接
			con = DriverManager.getConnection(URL,USER,PASSWORD);
			
		}catch(Exception ex){
			ex.printStackTrace();
		}

		return con;
	}

	//关闭数据库对象
	public static void closeAll(Connection con,Statement st,ResultSet rs){
		
		if(rs!=null){
			try{
				rs.close();
			}catch(Exception ex){
				ex.printStackTrace();
			}
			
		}

		if(st!=null){

			try{
				st.close();
			}catch(Exception ex){
				ex.printStackTrace();
			}
			
		}

		if(con!=null){
			try{
				con.close();
			}catch(Exception ex){
				ex.printStackTrace();
			}
			
		}

	}


	//通用设置参数方法
	public static void setParams(PreparedStatement pst,Object[] params){

		if(params==null){
			return;
		}

		for(int i=0;i<params.length;i++){
			try{
				pst.setObject(i+1,params[i]);
			}catch(Exception ex){
				ex.printStackTrace();
			}
		}
	}


	//通用增删改
	public static int executeUpdate(String sql,Object[] params){

		Connection con = null;
		PreparedStatement pst = null;
		
		int res = -1;
		
		try{

			//获取连接
			con = getConnection();
			//创建预编译命令执行对象
			pst = con.prepareStatement(sql);
			//设置参数
			setParams(pst,params);
			//执行
			res = pst.executeUpdate();

		}catch(Exception ex){
			ex.printStackTrace();
		}finally{
			closeAll(con,pst,null);
		}
		
		return res;
	}


	//通用查询
	public static List<Map<String,Object>> executeQuery(String sql,Object[] params) {

		List<Map<String,Object>> rows = new ArrayList<>();

		Connection con = null;
		PreparedStatement pst = null;
		ResultSet rs = null;

		try{
			//获取连接	
			con = getConnection();			
			//获取命令对象
			pst = con.prepareStatement(sql);
			//设置参数
			setParams(pst,params);
			//执行查询
			rs = pst.executeQuery();

			//通过rs获取结果集的结构信息
			ResultSetMetaData rsmd =  rs.getMetaData();
			//获取结果集的列数
			int colCount = rsmd.getColumnCount();

			//遍历查询结果,并封装到List<Map>中
			while(rs.next()){
				//用Map存储当前行的各个列数据
				Map<String,Object> map = new HashMap<>();
				//循环获取每一列的信息
				for(int i=1;i<=colCount;i++){
					//获取列名(使用rsmd)
					String colName = rsmd.getColumnLabel(i);
					//获取列值(使用rs)
					Object colVal = rs.getObject(i);
					//将当前列存储到map中
					map.put(colName,colVal);								
				}
				
				//将遍历的当前行的数据存储到List中
				rows.add(map);
							
			}


		}catch(Exception ex){
			ex.printStackTrace();
		}finally{
			closeAll(con,pst,rs);
		}
		
		return rows;

	}

}
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>maven_0811_parent</artifactId>
        <groupId>com.yzh7</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>dao</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <!-- 引用父级的jar包依赖 -->
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>
</project>
子级service:
StudentServletImpl:
package com.service;

import com.dao.StudentDAOImpl;

import java.util.List;
import java.util.Map;

public class StudentServletImpl {
    //private StudentDAOImpl
    public List<Map<String,Object>> listAll(){
        return new StudentDAOImpl().listAll();
    }
}
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>maven_0811_parent</artifactId>
        <groupId>com.yzh7</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>service</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <!-- 引用兄弟项目 -->
    <dependencies>
        <dependency>
            <groupId>com.yzh7</groupId>
            <artifactId>dao</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

</project>
子级web:
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
</web-app>
pom.xml:
<%@ page import="com.service.StudentServletImpl" %><%--
  Created by IntelliJ IDEA.
  User: 33154
  Date: 2022/8/14
  Time: 19:34
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        out.print(new StudentServletImpl().listAll());
    %>
</body>
</html>
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>

<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">
    <parent>
        <artifactId>maven_0811_parent</artifactId>
        <groupId>com.yzh7</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>web</artifactId>
    <packaging>war</packaging>

    <name>web Maven Webapp</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- 添加javaEE支持 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <!-- provided只在编译时支持,发布时不拷贝文件 -->
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <!-- provided只在编译时支持,发布时不拷贝文件 -->
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <!-- 引用兄弟项目 -->
        <dependency>
            <groupId>com.yzh7</groupId>
            <artifactId>service</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
    </dependencies>

    <build>
        <finalName>web</finalName>
        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>