maven中pom.xml中配置整理: groupId、artifactId、parent、dependency、dependencyManagement区别

1 <groupId>com.mycompany.commonmaven</groupId>
2 <artifactId>commonmaven</artifactId>
3 <version>0.0.1-SNAPSHOT</version>
4 <packaging>jar</packaging>
5 <name>common_maven</name>

groupId 定义了项目属于哪个组,举个例子,如果你的公司是mycom,有一个项目为myapp,那么groupId就应该是com.mycom.myapp.

artifacted 定义了当前maven项目在组中唯一的ID,比如,myapp-util,myapp-domain,myapp-web等。

version 指定了myapp项目的当前版本,SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。

packaging 打包的时候是打成一个jar包

name 声明了一个对于用户更为友好的项目名称,不是必须的,推荐为每个pom声明name,以方便信息交流。

-------------------------------------------------------------------------

A项目作为一个公共项目,被B项目和C项目所依赖,

B以parent的方式,

C以dependency的形式。

项目A 、 POM.XML的配置

 1 <groupId>com.mycompany</groupId>
 2 <artifactId>test1</artifactId>
 3 <version>1.0-SNAPSHOT</version>
 4 <packaging>war</packaging>
 5
 6 <dependencies>
 7 <dependency>
 8 <groupId>org.apache.commons</groupId>
 9 <artifactId>commons-lang3</artifactId>
10 <version>3.7</version>
11 </dependency>
12 </dependencies>

项目B 、POM.XML的配置

 1 <groupId>com.mycompany</groupId>
 2 <artifactId>test15</artifactId>
 3 <version>1.0-SNAPSHOT</version>
 4 <packaging>war</packaging>
 5
 6 <parent>
 7 <groupId>com.mycompany</groupId>
 8 <artifactId>test1</artifactId>
 9 <version>1.0-SNAPSHOT</version>
10 </parent>

项目C 、 POM.XML的配置

 1 <groupId>com.mycompany</groupId>
 2 <artifactId>test20</artifactId>
 3 <version>1.0-SNAPSHOT</version>
 4 <packaging>war</packaging>
 5
 6 <dependencies>
 7 <dependency>
 8 <groupId>com.mycompany</groupId>
 9 <artifactId>test1</artifactId>
10 <version>1.0-SNAPSHOT</version>
11 </dependency>
12 </dependencies>

最后可以发现:

B中,通过<parent>引用的项目A,可以使用A项目中<dependency>中依赖的StringUtils的方法,但是不能调用A项目中自己定义的类和方法,

C中,通过<dependency>依赖的A,两者却都可以调用。

然后说下dependencyManagement

 1 <dependencyManagement>
 2 <dependencies>
 3 <dependency>
 4 <groupId>org.springframework</groupId>
 5 <artifactId>spring-core</artifactId>
 6 <version>3.2.7</version>
 7 </dependency>
 8 </dependencies>
 9 </dependencyManagement>
10
11
12 <dependencies>
13 <dependency>
14 <groupId>org.springframework</groupId>
15 <artifactId>spring-core</artifactId>
16 </dependency>
17 </dependencies>

1.在同一个pom文件下,如果<dependencies>和<dependencyManagement>中都对该jar做了依赖,以<dependencies>的为准,

优先级高于<dependencyManagement>。若前者没有对其依赖,而后者对其有依赖,则以后者为准。

<dependencyManagement>里只是声明依赖,并不实现引入.

2.在不同的pom文件中,存在父子相互依赖关系的,父项目的pom中<dependencyManagement>中对该jar做了依赖,而子项目中<dependencies>又依赖了该jar,

如果子项目中没有指定<version>和<scope>,则继承父项目中该jar的<version>和<scope>。如果子项目中指定了<version>和<scope>,以子项目的为准。

原文地址:https://www.cnblogs.com/651434092qq/p/12017470.html

时间: 2024-11-05 11:36:46

maven中pom.xml中配置整理: groupId、artifactId、parent、dependency、dependencyManagement区别的相关文章

(转)如何在maven的pom.xml中添加本地jar包

1 maven本地仓库认识 maven本地仓库中的jar目录一般分为三层:图中的1 2 3分别如下所示: 1 groupId 2 artifactId 3 version 4 jar包的依赖 如果要将maven本地仓库中的jar包添加到项目中,直接打开4 xx.pom文件,将改jar包的相关依赖复制pom.xml文件中即可. 2 将本地jar包添加到本地仓库 2.1 添加jar到本地仓库 原则上Maven的设计是不需要这么做的,因为pom.xml中依赖的jar包会自动实现从中央仓库下载到本地仓库

maven的pom.xml中出现Multiple annotations found at this line:错误

一般这个错误出现在pom.xml的第一行,出错信息如下: Multiple annotations found at this line: - Missing artifact stax:stax-api:jar:1.0.1 - ArtifactTransferException: Failure to transfer stax:stax-api:jar:1.0.1 from http://dist.codehaus.org/ was cached in the local repositor

(转)Maven的pom.xml文件配置使用

转载:http://www.cnblogs.com/GarfieldTom/p/3707160.html <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.ap

maven中pom.xml中的scope讲解

一.compile:编译范围compile是默认的范围:如果没有提供一个范围,编译范围依赖在所有的classpath 中可用,同时它们也会被打包.而且这些dependency会传递到依赖的项目中. 二.provided:已提供范围provided 明了dependency 由JDK或者容器提供.例如如果开发了一个web 应用,可能在编译 classpath 中需要可用的Servlet API 来编译一个servlet,但是你不会想要在打包好的WAR 中包含这个Servlet API:这Servl

maven的pom.xml中添加想要的jar包

以前都是在网上或者公司仓库里面查找pom.xml依赖包,今天学会了新的添加方法

maven的pom.xml文件配置详解

<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 "> <!-- 父项目的坐标.如

在maven项目pom.xml中添加tomcat插件

1 <build> 2 <!--插件 --> 3 <plugins> 4 <plugin> 5 <groupId>org.apache.tomcat.maven</groupId> 6 <artifactId>tomcat7-maven-plugin</artifactId> 7 <version>2.2</version> 8 <configuration> 9 <!

pom.xml中添加远程仓库

maven的pom.xml中添加远程仓库 <repositories> <repository> <id>mvnrepository</id> <name>mvnrepository</name> <url>http://www.mvnrepository.com/</url> <layout>default</layout> <releases> <enabled&g

在 eclipse中 创建 web 版的 maven 工程以及 进一步了解 pom.xml 中 scope 的相关配置设置问题

1.在 eclipse中 创建 web 版的 maven 工程: a.和 创建 java 版的 maven 工程一样,先选中一个简单的工程(跳过经典模式),后填写坐标(不了解的看先前的博文),在打包方式中选择 war 包,后点击 finish. b.可以看到,在新建 的 javaproject03 的 项目中,只有 webapp目录,而实际的内容并没有.这里我们在每次新建时都要做设置.设置如下: 注:鼠标停在所建的项目上,点击右键进入 properties --> Project Facets