3.6. 关于 Maven 工件和协调
在 Maven 构建系统中,基本构建块是一个 构件。构建后,工件的输出通常是一个存档,如 JAR 或 WAR 文件。
Maven 的一个重要方面是能够定位工件并管理它们之间的依赖关系。Maven 协调 是一组用于标识特定工件位置的值。基本协调以以下格式有三个值:
groupId:artifactId:version
有时,Maven 使用 打包值或打包 值和类器值增强基本协调。 Maven 协调可以具有以下格式之一:
groupId:artifactId:version groupId:artifactId:packaging:version groupId:artifactId:packaging:classifier:version
groupId:artifactId:version
groupId:artifactId:packaging:version
groupId:artifactId:packaging:classifier:version
以下是值的描述:
- groupdId
-
定义工件名称的范围。您通常使用所有或包名的一部分作为组 ID。例如,
org.fusesource.example
。 - artifactId
- 定义相对于组 ID 的工件名称。
- version
-
指定工件的版本。版本号最多可有四个部分:
n.n.n.n
.n,其中版本号的最后一部分可以包含非数字字符。例如,1.0-SNAPSHOT 的最后一部分是字母
子字符串,即0-SNAPSHOT
。 - 打包
-
定义构建项目时生成的打包实体。对于 OSGi 项目,打包是
捆绑的
。默认值为jar
。 - 分类器
- 可让您区分从同一 POM 构建的工件,但具有不同的内容。
工件的 POM 文件中的元素定义了工件的组 ID、工件 ID、打包和版本,如下所示:
<project ... > ... <groupId>org.fusesource.example</groupId> <artifactId>bundle-demo</artifactId> <packaging>bundle</packaging> <version>1.0-SNAPSHOT</version> ... </project>
<project ... >
...
<groupId>org.fusesource.example</groupId>
<artifactId>bundle-demo</artifactId>
<packaging>bundle</packaging>
<version>1.0-SNAPSHOT</version>
...
</project>
要定义对上述工件的依赖项,您要将以下 dependency
元素添加到 POM 文件中:
<project ... > ... <dependencies> <dependency> <groupId>org.fusesource.example</groupId> <artifactId>bundle-demo</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> ... </project>
<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
元素。