A.5. Maven 协调
Maven 功能的一个关键方面是能够找到工件和管理它们之间的依赖关系。Maven 使用 Maven 协调 的系统定义工件的位置,它唯一定义特定工件的位置。一个基本的协调元组具有表单 {groupId,artifactId,version}
。有时,Maven 会增加基本协调集与额外的协调、打包和 分类器。可以使用基本协调或额外的 打包 协调编写元组,或者添加 打包和 分类器 协调,如下所示:
groupdId:artifactId:version groupdId:artifactId:packaging:version groupdId:artifactId:packaging:classifier:version
每个协调都可以解释,如下所示:
- groupdId
-
定义工件名称的范围。您通常使用所有或部分软件包名称作为组 ID iwl-8:0:1:: 例如
org.fusesource.example
。 - artifactId
- 定义工件名称(相对于组 ID)。
- version
-
指定工件的版本。版本号最多可有四个部分:
n.n.n.n
,其中版本号的最后一部分可以包含非数字字符(例如1.0-SNAPSHOT
的最后一部分是字母数字,0-SNAPSHOT
)。 - 打包
-
定义构建项目时生成的打包实体。对于 OSGi 项目,打包是
捆绑包
。默认值为jar
。 - classifier
- 可让您区分从同一 POM 构建但具有不同内容的工件。
组 ID、工件 ID、打包和版本由工件的 POM 文件中的对应元素定义。例如:
<project ... > ... <groupId>org.fusesource.example</groupId> <artifactId>bundle-demo</artifactId> <packaging>bundle</packaging> <version>1.0-SNAPSHOT</version> ... </project>
例如,要定义对上述工件的依赖项,您可以在 POM 中添加以下
dependencies 元素:
<project ... > ... <dependencies> <dependency> <groupId>org.fusesource.example</groupId> <artifactId>bundle-demo</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> ... </project>
注意
不需要在 前面的依赖项中指定 bundle
软件包类型,因为捆绑包只是特定类型的 JAR 文件,jar
是默认的 Maven 软件包类型。但是,如果您需要在依赖项中明确指定打包类型,您可以使用 type
元素。