当前位置: 首页 > article >正文

Apache Maven Assembly 插件简介

Apache Maven Assembly 插件是一个强大的工具,允许您以多种格式(如 ZIP、TAR 和 JAR)创建项目的分发包。

该插件特别适用于将项目与其依赖项、配置文件和其他必要资源一起打包。

通过使用 Maven Assembly 插件,您可以将项目作为一个单独的归档文件分发,从而更方便地共享和部署。

最新版本

Maven Assembly 插件的最新版本为 3.7.1

使用最新版本可以确保访问到最新的特性和改进。

配置 Maven Assembly 插件

要在 Maven 项目中使用 Assembly 插件,您需要在项目的 pom.xml 文件中进行配置。

下面将通过步骤介绍如何设置 Assembly 插件。

步骤 1: 创建 Maven 项目

如果您还没有 Maven 项目,可以使用以下命令创建一个新的 Maven 项目:

mvn archetype:generate -DgroupId=com.example -DartifactId=assembly-plugin-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

该命令会生成一个简单的 Maven 项目,其目录结构如下:

assembly-plugin-demo
|-- src
|   |-- main
|   |   `-- java
|   |       `-- com
|   |           `-- example
|   |               `-- App.java
|   `-- test
|       `-- java
|           `-- com
|               `-- example
|                   `-- AppTest.java
|-- pom.xml
`-- target
步骤 2: 添加 Maven Assembly 插件配置

进入项目目录并打开 pom.xml 文件,在 <build> 标签内添加 Maven Assembly 插件的配置:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>com.example</groupId>
    <artifactId>assembly-plugin-demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.3.0</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>com.example.App</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
  • <groupId>: 指定 Maven Assembly 插件的组ID。
  • <artifactId>: 指定 Maven Assembly 插件。
  • <version>: 使用的插件版本。请确保使用最新版本。
  • <descriptorRefs>: 指定要创建的分发包类型。在这个例子中,jar-with-dependencies 用于创建包含所有依赖项的 JAR 文件。
  • <archive>: 配置归档设置,例如 JAR 清单中的主类。
  • <executions>: 定义插件的执行,指定何时创建分发包。在这个例子中,分发包在 package 阶段创建。
步骤 3: 创建主类

打开 src/main/java/com/example/App.java 文件,并更新 App 类以打印 “Hello, World!”:

package com.example;

public class App {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
步骤 4: 构建项目

使用以下命令构建项目并创建分发包:

mvn clean package

构建完成后,您会在 target 目录中找到生成的 JAR 文件:

target/
|-- assembly-plugin-demo-1.0-SNAPSHOT.jar
|-- assembly-plugin-demo-1.0-SNAPSHOT-jar-with-dependencies.jar
|-- classes
|-- generated-sources
|-- maven-archiver
|-- maven-status
|-- surefire-reports
|-- test-classes
`-- ...

其中,assembly-plugin-demo-1.0-SNAPSHOT-jar-with-dependencies.jar 文件包含了项目的类和所有依赖项。

步骤 5: 运行打包后的 JAR 文件

使用以下命令运行打包后的 JAR 文件:

java -jar target/assembly-plugin-demo-1.0-SNAPSHOT-jar-with-dependencies.jar

该命令将输出:

Hello, World!

总结

Maven Assembly 插件用于创建项目的分发包。

通过将其集成到 Maven 构建过程中,您可以轻松地将项目及其所有依赖项和其他必要资源打包。

本指南全面介绍了设置和使用 Maven Assembly 插件的方法,并附带一个实际示例帮助您快速上手。

掌握这些知识后,您可以高效地创建和分发 Java 应用程序。


http://www.kler.cn/a/410915.html

相关文章:

  • RiceChem——用于评估大语言模型在教育领域自动长答卷评分 (ALAG) 的数据集
  • C++设计模式之组合模式中如何实现同一层部件的有序性
  • 三种蓝牙架构实现方案
  • 非交换几何与黎曼ζ函数:数学中的一场革命性对话
  • 软件工程第14章小测
  • 桥梁、隧道、道路、铁路、结构、岩土,哪个发展更好?
  • Redis设计与实现第14章 -- 服务器 总结(命令执行器 serverCron函数 初始化)
  • Text、Data、BSS、Heap、Stack
  • PDF工具集套装 PDFgear v2.1.8 免费中文版
  • Vue 项目中 Axios 的封装方向探索
  • CBK8软件开发安全
  • 文件导入-使用java反射修改日期数据
  • 预告|ROS中超好用固定翼仿真开源平台即将上线!
  • CSS实现两组item中间边框不重复,且边框为渐变色
  • VXLAN详解
  • 【系统架构设计师】真题论文: 论软件架构建模技术与应用(包括解题思路和素材)
  • LLM | 论文精读 | CVPR | FairCLIP:追求视觉语言学习中的公平性
  • 初始ArkUI
  • lua除法bug
  • Ubuntu下手动设置Nvidia显卡风扇转速
  • shell与QQ邮箱的连接
  • etcd快速入门
  • 业务架构、数据架构、应用架构和技术架构
  • Ubuntu 关闭内核自动更新
  • 因泰立科技:激光技术融合,高速公路治超系统的创新实践
  • C++【日志模块中的writer类】前文中 循环队列用法