关于maven依赖需要解决问题:跨项目解决版本冲突问题

》》继承(不推荐)继承了父pom的依赖: 子项目的pom:

<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>cn.pk</groupId>
	  <artifactId>MAVEN_CHILD</artifactId>
	  <version>0.0.1-SNAPSHOT</version>

		<parent>
			  <groupId>cn.pk</groupId>
			  <artifactId>MAVEN_PARENT</artifactId>
			  <version>0.0.1-SNAPSHOT</version>
		</parent>
		<dependencies>
		<!-- 子项目中引入依赖 -->
			<dependency>
			    <groupId>mysql</groupId>
			    <artifactId>mysql-connector-java</artifactId>
			    <version>${MYSQL-VERSION}</version>
			</dependency>
		</dependencies>
</project>

父项目的pom:

<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>cn.pk</groupId>
	  <artifactId>MAVEN_PARENT</artifactId>
	  <version>0.0.1-SNAPSHOT</version>
  
  <packaging>pom</packaging>
	  <properties>
	  	<MYSQL-VERSION>6.0.3</MYSQL-VERSION>
	  </properties>
  </project>## 标题

注意:子项目可以引用父项目的变量,一旦在父pom中修改了变量名 所有的子pom都需要修改 (不推荐)

》》依赖管理 多继承 (不能继承变量和父pom的依赖) 管理版本号 父pom中定义所有的依赖的版本 不会下载jar包

子项目pom中加入:

<dependencies>
		<dependency>
			 <groupId>javax.servlet</groupId>
		     <artifactId>jstl</artifactId>
		</dependency>
		
		<dependency>
			  <groupId>commons-io</groupId>
		      <artifactId>commons-io</artifactId>
		</dependency>
		
  	</dependencies>
  	<!-- 不能继承父pom的变量和依赖  只能继承父pom的依赖管理  管理版本号-->
  	<dependencyManagement>
  		<dependencies>
  			<dependency>
  			<!-- 注意下面是父项目的坐标 -->
  				<groupId>cn.pk</groupId>
				<artifactId>MAVEN_PARENT_1</artifactId>
				<version>0.0.1-SNAPSHOT</version>
				<scope>import</scope>
				<type>pom</type>
  			</dependency>
  		</dependencies>
  	</dependencyManagement>

父项目pom中加入:

 <properties>
  	<JSTL-VERSION>1.1.0</JSTL-VERSION>
  	<IO-VERSION>2.6</IO-VERSION>
  </properties>
  <!-- 依赖管理  不会下载jar包-->
  <dependencyManagement>
  	<dependencies>
  	<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
		<dependency>
		    <groupId>javax.servlet</groupId>
		    <artifactId>jstl</artifactId>
		    <version>${JSTL-VERSION}</version>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
		<dependency>
		    <groupId>commons-io</groupId>
		    <artifactId>commons-io</artifactId>
		    <version>${IO-VERSION}</version>
		</dependency>
		
    </dependencies>
  </dependencyManagement>

猜你喜欢

转载自blog.csdn.net/wufewu/article/details/83347330
今日推荐