用法

有关如何使用此插件的一些简短示例。如果您想使用高级配置,您应该查看示例部分Maven Archiver的文档。

要处理存档此版本的 Maven JAR 插件,请使用Maven Archiver 3.5.2。

注意:如果您需要对 JAR 文件进行签名,您应该改用Maven Jarsigner 插件

如何构建 JAR 文件

当您想使用 Maven 创建 JAR 文件时,您首先必须创建一个pom.xml文件,其中至少包含以下内容:

<project>
  <modelVersion>4.0.0</modelVersion>
  
  <groupId>com.mycompany.project</groupId>
  <artifactId>core</artifactId>
  <version>1.0-SNAPSHOT</version>
  <!-- <packaging>jar</packaging>  -->
</project>

由于“jar”是默认的包装类型,在这种情况下不需要设置它。除了上述之外,您通常还需要一些真正的 java 源文件,它们应该位于src/main/java中。如果您需要类路径上的额外资源(例如属性文件),它们应该位于src/main/resources中。现在我们可以使用以下命令创建一个 JAR 文件:

mvn package

“包”阶段始终负责捆绑工件中的所有文件,在本例中为 JAR 文件。

在项目的目标目录中,您将看到生成的 jar 文件,其名称如下:'core-1.0-SNAPSHOT.jar'。生成的“jar”文件包含已编译的 java 类文件以及来自src/main/resources的文件。

通常不需要明确提及“maven-jar-plugin”,因为它绑定到Maven Build Life Cycle

如需完整文档,请单击此处

模块化 JAR 文件

Java 平台模块系统 (JPMS) 也引入了 JAR 文件规范的更改-模块化 JAR 文件。模块化 JAR 文件是根目录中带有module-info.class文件的 JAR 文件(或者在多版本 JAR 文件的版本控制区域中)。如果项目包含module-info.class,则生成的 JAR 将是模块化 JAR,无需任何配置,无论使用的插件版本如何。

从版本 3.1.2 开始,如果 JAR 文件包含module-info.class,此插件将使用附加属性(例如包含的包列表)更新模块化描述符( module-info.class ),并将验证生成的模块化描述符(例如,如果模块提供的所有服务实际上都包含在 JAR 文件中)。添加的最显着的附加属性是模块主类。如果 JAR 清单包含Main-Class属性,此插件会将模块主类设置为相同的值(例如如何将其设置为Make The Jar Executable)。插件在内部使用 JDK jar工具,因此为了添加附加属性并验证模块化描述符 Maven 应该使用 JDK 9 或更高版本运行。如果使用版本 8 或更早版本,则生成的 JAR 仍将是模块化 JAR(因为它包含module-info.class),但不会添加其他属性,也不会执行验证。