坐 标
Maven坐标为各种构件引入了秩序。每个构件都必须明确定义自己的坐标,Maven坐标是通过一些元素来定义的,元素为:groupId、artifactId、version、packaging、classifier。
groupId:定义当前Maven项目隶属的实际项目,与域名相对应。如百度地图项目:com.badu.map
artifactId:该元素定义实际项目中的一个Maven项目(模块),推荐做法是使用实际项目名称作为artifactId的前缀。
version:该元素定义Maven项目当前所处的版本。如果是在开发阶段使用快照(SNAPSHOT)方式。
pachaging:该元素定义Maven项目的打包方式。默认值jar.
classifier:该元素用来帮助定义构建输出的一些附属构件。
依 赖
依赖声明:
<project>
...
<dependencies>
<dependency>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<type>...</type>
<scope>...</scope>
<optional>...</optional>
<exclusions>
<exclusion>
...
</exclusion>
...
</exclusions>
</dependency>
...
</dependencies>
...
</project>
说明:1.groupId、artifactId、version为依赖的基本坐标。
2.type:依赖类型,对应于项目坐标定义的packaging. 大部份情况下无需声明,基默认值为jar.
3.scope:依赖范围,见A。
4.optional:标记依赖是否可选(如果构件A依赖于构件B,构件B依赖构件C为可选,则A不会传递依赖C)。
5.exclusions:用来排除传递性依赖。
大部份情况下声明只包含基本坐标。
A、依赖范围说明:
compile:编译依赖范围(为默认依赖范围)。对于编译、测试和运行都有效;
test:测试依赖范围。只对测试classpath有效。如:JUnit;
provided:已提供依赖范围。对于编译和测试classpath有效,但在运行时无效。如果:servlet-api(运行时由于容器已提供,所以无需重复引入);
runtime:运行时依赖范围。对于测试和运行classpath有效,但编译主代码时无效。如:JDBC;
system:系统依赖范围。该依赖与三种classpath的关系和provided依赖范围完全一致。但必须通过systemPath元素显示地指定依赖文件的路径(systemPath元素可以引用环境变量,如:<systemPath>${java_home}/lib/rt.jar</systemPaht>)。此项目应该谨慎使用,因为它引用本地,Maven仓库之外的类库文件,可能造成构建的不可移植。
import(Maven2.0.9及以上):导入依赖范围。该依赖范围不会对三种classpath产生实际影响。
由于依赖具有传递性,可能出现一个Maven项目间接依赖某构件的不版本。Maven提供了两个依赖调解原则:
一、路径最近者优先;二、路径长度一样时,第一声明者优先。
此外,还可以在声明依赖时使用exclusions元素声明排除依赖。
分享到:
相关推荐
2. **依赖坐标**:每个依赖由groupId、artifactId和version组成,类似于库的唯一标识。例如,`org.springframework:spring-web:5.3.9`表示Spring框架的Web模块,版本号为5.3.9。 3. **依赖范围(scope)**:Maven...
### Maven坐标与依赖管理 每个 Maven 项目都由四个主要的坐标定义:groupId、artifactId、version 和 packaging。例如,`groupId=com.example`、`artifactId=my-app`、`version=1.0-SNAPSHOT` 和 `packaging=jar`。...
在POM中声明所需依赖,Maven会根据设定的坐标(groupId、artifactId、version)从Maven中央仓库或其他指定的远程仓库下载对应的jar包。例如,`<dependency>`标签用于声明项目依赖,`<dependencies>`标签则用于包含...
这里的`groupId`、`artifactId`和`version`共同构成了Maven坐标,用于唯一标识一个依赖。Maven会根据这个坐标从中央仓库或其他配置的远程仓库下载对应的JAR文件。 Maven依赖管理遵循“传递性”原则,即如果你的项目...
这里的`groupId`、`artifactId`和`version`共同构成了Maven坐标,用于唯一标识一个项目或库。Maven会根据这些信息从Maven中央仓库或其他指定的远程仓库下载对应的jar文件。 Maven的依赖机制遵循“传递性”原则,这...
2. **Maven坐标**:在Maven中,每个依赖由三部分组成,即groupId(表示项目或组织的唯一标识)、artifactId(项目或模块的标识)和version(该组件的版本号)。 3. **依赖的传递性**:如果项目A依赖于B,B又依赖于C...
这里`groupId`、`artifactId`和`version`共同构成了Maven的坐标,用于唯一标识一个库。 总的来说,理解并掌握Maven的本地仓库和依赖管理对于JavaWeb开发者至关重要,它能够简化项目构建过程,提高开发效率,并确保...
声明优先原则是指,如果有多个具有相同坐标的依赖项,Maven会优先选择最后声明的依赖项。 Maven还支持传递性依赖。当我们引入一个依赖项时,Maven会自动引入该依赖项所依赖的其他依赖项。例如,如果我们引入了...
在这个例子中,'com\'暗示了groupId可能是'com.artofsolving\',这是一个假设的组织名,实际的groupId应在解压前查看Maven依赖的完整坐标。 标签“jodconverter”、“maven”、“jar”和“java”揭示了几个关键点:...
1. **groupId**:这是所有Maven坐标的第一部分,类似于Java包名,用于唯一标识一个项目或组织。这里的`org.mybatis`表示这个依赖属于MyBatis组织。 2. **artifactId**:这是Maven坐标的一部分,用于标识同一个项目...
1. **Maven**:Maven是Java项目管理工具,用于构建、依赖管理和项目信息管理。在这个项目中,Maven负责编译源代码、运行测试、打包应用,并管理项目的依赖关系。 2. **Dubbo**:Dubbo的核心功能包括服务注册与发现...
总的来说,当中央Maven仓库找不到特定的依赖时,开发者需要自行下载并管理这些依赖。对于JxBrowser,这个过程包括下载jar包、安装到本地仓库、并在项目中配置依赖。通过这样的方式,即使官方仓库不可用,我们依然...
在实际开发中,Grails 3.2.8与Maven的结合使得开发者能够充分利用Maven的强大功能,如依赖管理和构建自动化,同时享受Grails带来的便捷和高效。通过熟练掌握这两个工具的集成使用,你可以更有效地构建和管理复杂的...
本资源是国产数据库人大...本地maven 依赖操作mvn install:install-file -Dfile=G:\kingbase8-8.2.0.jar -DgroupId=com.kingbase8 -DartifactId=kingbase8 -Dversion=8.2.0 -Dpackaging=jar 你本地就能用这个依赖了。
- POM:每个Maven项目都有一个POM.xml文件,它包含了项目的配置信息,如项目坐标(groupId, artifactId, version)、依赖、构建指令等。 - 依赖管理:Maven通过POM文件中的标签来管理项目依赖,自动下载并管理这些...
- **坐标**:每个Maven构件都由一组坐标唯一标识,包括Group ID、Artifact ID和Version。 - **仓库**:Maven使用仓库来存储和管理构件。本地仓库存储本地开发过程中使用的构件,而中央仓库则包含了大量公共可用的...
2. **依赖管理**:Maven 能够自动处理项目所需的所有外部依赖,开发者不需要手动下载和配置。 3. **项目生命周期**:Maven 定义了一系列的构建生命周期阶段,如 `clean`、`compile`、`test`、`package` 等,每个阶段...
"Maven 构建好的 IK 分词器,可直接使用" 这个标题告诉我们,这里提供的是一个已经使用 Maven 构建完成的 IK 分词器,专为 Elasticsearch 2.2 版本设计。IK 分词器是针对中文文本进行分词处理的工具,通常用于提高...