在 Java 中如何使用 maven-assembly-plugin 创建 .jar / .tar.gz / .zip 存档文件? Maven 和企业项目教程

已发表: 2020-10-07
多合一提示和教程-on-apache-maven-build-java-enterprise-project-using-maven

Maven真是太神奇了。 拥有如此多的插件,它是目前市场上Best Java Build tool之一。

我在我所有的项目中都使用它,并且非常依赖它。 构建可能性是无穷无尽的。 前段时间我写了很多关于其他 maven 插件的不同教程,在这篇文章中,我们将讨论maven-assembly-plugin

Maven 程序集插件依赖于提供的程序集描述符来指示其执行。

这是以前的 maven 插件教程的列表:

  • maven-war-plugin – 创建项目 .war 文件。
  • maven-resources-pluginmaven-dependency-pluginmaven-jar-plugin – 构建包含所有依赖项的 Java 项目?
  • maven-shade-plugin – 创建包含所有必需依赖项、属性和资源的基于 Java+Spring 的可执行文件 .jar。

您有以下任何问题吗? 本教程也适用于它。

  • 如何使用 Maven 创建 jar 文件?
  • 如何使用maven创建具有依赖关系的jar文件
  • 使用 pom.xml 创建 jar
  • 创建没有依赖关系的maven jar的最佳方法
  • 如何创建包含依赖项的maven jar

让我们开始使用 maven-assembly-plugin

第1步

在 Eclipse 环境中创建新的 Maven 项目。 将其命名为CrunchifyMavenBuildPlugins 。 如果您有现有的动态 Web 项目或 Java 项目,则可以使用这些步骤将项目转换为 maven 项目。 将项目转换为 Maven 后,您应该会看到生成了本教程所需的pom.xml文件。

这是我的项目结构。 我正在使用我现有的项目,该项目在/src/com/crunchify/tutorials包下共有8 java files

maven 组装插件 - Crunchify 教程

第2步

打开项目的 pom.xml 文件添加新的<plugin></plugin>主要是line 28 to 38

第三步

创建新文件crunchify.xml并将其放在/src/com/crunchify/assembly包下。 我们已经在上面的pom.xml文件中引用了这个文件。

在这里,我们将项目导出为 3 种不同的<formats>

  • 压缩包
  • 压缩
  • 柏油

<directory>标签显示 – 获取包src/com/crunchify/tutorial下的所有内容,并将其放在<outputDirectory>标签下提到的crunchify-output文件夹下。

如果您想包含/src/resource文件夹内容之类的所有内容,则可以使用以下不同的变体:

  1. <目录> src/com/crunchify/tutorial </目录>
  2. <directory> src </directory> : src 文件夹下的所有内容
  3. <directory> resources </directory> :资源文件夹下的所有内容
  4. <directory> / </directory> : 一切

第四步

右键单击项目 CrunchifyMavenBuildPlugins => Run As => Maven build

Maven 右键单击​​并清理构建 - Crunchify
  • 提供目标作为clean assembly:assembly
  • 单击Apply
  • 单击Run
使用 eclipse build 命令创建程序集

第 5 步

您应该在控制台上看到BUILD SUCCESS消息。

第 6 步

NOTE:您不必执行此步骤。

maven 部署描述符的 tarLongFileMode - maven 程序集插件

你收到这个错误了吗? 如果您在构建程序集时看到此错误消息,则必须在 pom.xml 文件中添加以下行。

我在第一次尝试时遇到了上述错误。 所以已经将tarLongFileMode添加到上面的 pom.xml 文件中。

第 7 步

现在how to verify ? 请转到您项目的target文件夹并运行以下命令以查看您的.tag.gz file contents

bash-3.2$ tar zxvf CrunchifyMavenBuildPlugins-0.0.1-SNAPSHOT-bundle.tar.gz

maven 程序集插件 - 验证结果 - crunchify

让我知道您是否有任何问题并遇到运行此问题的任何问题。