spring boot多模块项目中的pom.xml

spring boot项目中,多模块结构的话,每个模块都会有一个pom.xml(当然,这是采用了maven来进行依赖管理)。这些pom.xml的关系和内容究竟为何?有必要搞搞清楚。

首先,关系很分明,就是父子关系。最外层的是父级,每个模块里的是子级。子级可以继承父级里的各种设置和依赖。比如说,有些包如果所有模块都会用,就不妨放到父级pom.xml里。

其次是pom里的内容。有些标记不能不了解一下。

1、modelVersion

这个标签必须存在,而且它的值必须是4.0.0,这标志着我们现在使用的是maven2。刚开始的时候,顾名思义,我想当然地认为这是一个模块版本(其实model也不是模块的意思)。

2、groupId和artifactId

groupId和artifactId合起来作为当前项目的唯一标识,maven2最终会根据这两个值,决定项目发布到repo上时所处的位置。

3、version

这个才是项目或模块的版本号

4、dependencyManagement

依赖声明,主要是版本。做法是,在父pom这里声明依赖包的版本,子pom就不用再声明版本了,这样做的好处是比较好修改。修改版本的话,只需修改父pom一个地方就够了。

示例:

//父pom

	<properties>
		<java.version>1.8</java.version>
		<oracle.version>11.2.0.1.0</oracle.version>
		<mybatis.version>2.1.0</mybatis.version>
		<fastjson.version>1.2.60</fastjson.version>
	</properties>

    <!-- 依赖声明 -->
    <dependencyManagement>
        <dependencies>
			<dependency>
				<groupId>com.alibaba</groupId>
				<artifactId>fastjson</artifactId>
				<version>${fastjson.version}</version>
			</dependency>
			<dependency>
				<groupId>com.oracle</groupId>
				<artifactId>ojdbc6</artifactId>
				<version>${oracle.version}</version>
			</dependency>
			<dependency>
				<groupId>org.mybatis.spring.boot</groupId>
				<artifactId>mybatis-spring-boot-starter</artifactId>
				<version>${mybatis.version}</version>
			</dependency>
        </dependencies>
    </dependencyManagement>

//子pom,可以注意到没有声明版本号,都采用父pom上的版本;如果子pom声明了版本,则以子pom为准。

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
        </dependency>

5、properties

看上去,就是定义版本号,见上例。

发布了1105 篇原创文章 · 获赞 337 · 访问量 338万+

猜你喜欢

转载自blog.csdn.net/leftfist/article/details/103513823