Maven 项目用Assembly打包可执行jar包的方法

下面是针对 Maven 项目使用 Assembly 插件打包可执行 jar 包的完整攻略,包含了两个示例。

准备工作

首先,确保已经安装 Maven 和 JDK 并配置好环境变量。

接下来,需要在 Maven 项目中添加 Assembly 插件的依赖和配置。

在项目的 pom.xml 文件中添加以下依赖:

<dependencies>
  ...
  <dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.3.0</version>
  </dependency>
  ...
</dependencies>

然后,在 pom.xml 文件的 <build> 节点中添加以下配置:

<build>
  ...
  <plugins>
    ...
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>3.3.0</version>
      <executions>
        <execution>
          <id>make-assembly</id>
          <phase>package</phase>
          <goals>
            <goal>single</goal>
          </goals>
          <configuration>
            <archive>
              <manifest>
                <mainClass>com.example.Main</mainClass>
              </manifest>
            </archive>
            <descriptorRefs>
              <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
            <finalName>my-project</finalName>
          </configuration>
        </execution>
      </executions>
    </plugin>
    ...
  </plugins>
  ...
</build>

在上述配置中,mainClass 指定了程序的入口类,descriptorRef 指定了要使用的打包方式为“打包包含依赖的 jar 包”,finalName 指定了打包后生成的文件名。

示例一

假设我们有一个 Maven 项目,其中入口类为 com.example.Main,程序依赖了 log4jjsoncommons-lang3 等库。

  1. 在项目根目录下打开命令行或终端窗口。

  2. 输入以下命令编译和打包项目:

bash
mvn clean package

这里使用 clean 命令清理之前编译的结果,以保证打包的文件最新和正确性。

  1. 打包成功后,在项目根目录的 target 目录下可以找到一个名为 my-project-jar-with-dependencies.jar 的可执行文件,该文件包含了项目所有依赖库。

  2. 在命令行或终端窗口中使用以下命令执行打包的可执行文件:

bash
java -jar my-project-jar-with-dependencies.jar

如果一切正常,我们应该看到程序成功运行并输出了一些结果。

示例二

假设我们有一个 Maven 网络爬虫项目,由以下文件组成:

crawler
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── example
│   │   │           └── Crawler.java    # 入口类
│   │   └── resources
│   │       └── config.properties     # 配置文件
│   └── test
│       ├── java
│       │   └── com
│       │       └── example
│       │           └── CrawlerTest.java
│       └── resources
│           └── test_config.properties
└── pom.xml

其中,config.properties 为爬虫的配置文件,包含了爬取的 URL、线程数量、间隔时间等参数。

我们需要将整个项目打包为一个可执行的 jar 包,使用户可以直接运行并进行爬取。

  1. 在项目根目录下打开命令行或终端窗口。

  2. 输入以下命令编译和打包项目:

bash
mvn clean package

  1. 打包成功后,在项目根目录的 target 目录下可以找到一个名为 crawler-1.0.0-jar-with-dependencies.jar 的可执行文件。

  2. 在命令行或终端窗口中使用以下命令执行打包的可执行文件:

bash
java -jar crawler-1.0.0-jar-with-dependencies.jar --config=config.properties

运行参数中将 config.properties 文件作为配置文件传入,程序将从该文件中读取配置并进行爬取。

通过以上示例,我们可以看到 Maven 项目使用 Assembly 打包可执行 jar 包的方法。如果您的项目需要打包生成其他格式的文件,也可以在配置文件中进行相应的修改。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Maven 项目用Assembly打包可执行jar包的方法 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • IIS6 和Tomcat5 的整合

    IIS6 和 Tomcat5 的整合,我们可以通过在 IIS6 中安装 Tomcat 的扩展程序来实现。这个扩展程序可以使 IIS6 和 Tomcat5 之间建立一个联杆使得两者能够进行通信。 以下是整合的步骤: 安装 Tomcat Connector 下载 Tomcat Connector ,一般都是apache-tomcat-connectors-1.2…

    Java 2023年5月20日
    00
  • 从零搭建SpringBoot+MyBatisPlus快速开发脚手架

    从零搭建SpringBoot+MyBatisPlus快速开发脚手架 在实际开发中,我们经常需要使用SpringBoot和MyBatisPlus来快速开发应用程序。本文将手把手教你如何从零开始搭建SpringBoot+MyBatisPlus快速开发脚手架,包括创建项目、添加依赖、配置数据源、创建实体类、创建Mapper接口、使用MyBatisPlus的CRUD…

    Java 2023年5月14日
    00
  • Spring Cache框架应用介绍

    针对Spring Cache框架应用介绍,我将分以下几个方面进行讲解,确保您能够全面了解并使用这一框架: Spring Cache框架介绍 Spring Cache框架是Spring官方提供的,用于缓存的框架。它可以将方法返回的结果缓存到内存、Redis、Ehcache等缓存服务器中,避免方法重复执行,保证系统性能和响应速度。同时,它还提供了对缓存的管理,如…

    Java 2023年5月19日
    00
  • java实现单机限流

    Java实现单机限流,可以通过限制每秒钟能处理多少次请求、对同一IP的请求进行限制等手段来避免服务被恶意请求压垮。下面是实现单机限流的完整攻略: 步骤一:引入限流工具包 Java实现单机限流可以使用开源限流工具包,比如Guava、Redis等。 以Guava为例,引入Guava限流工具包的步骤如下: 在pom.xml文件中添加以下依赖 <depende…

    Java 2023年5月19日
    00
  • Java递归算法详解(动力节点整理)

    Java递归算法详解(动力节点整理) 什么是递归? 递归是指在函数的定义中,直接或间接地调用自身的行为。 递归调用的实现过程 递归调用是通过栈实现的,每一次函数调用会将调用时的参数和函数运行的状态信息压入栈中,函数运行完成后,再从栈中弹出上一次调用的信息并恢复上一种状态信息,继续执行下去。 递归调用的分类 递归调用可以分为两类:直接递归和间接递归。 直接递归…

    Java 2023年5月26日
    00
  • Java实现SHA-1算法实例

    下面是“Java实现SHA-1算法实例”的完整攻略。 简介 SHA-1是一种哈希算法,用于产生消息摘要。它将消息作为输入,输出一个128位(20字节)的消息摘要。它被广泛用于数字签名等领域。 本攻略将介绍如何在Java中实现SHA-1算法,以便在需要时生成文本的消息摘要。 实现步骤 步骤1:导入SHA-1算法库 Java自带了SHA-1算法库,我们只需要导入…

    Java 2023年5月19日
    00
  • ServletWebServerApplicationContext创建Web容器Tomcat示例

    关于”ServletWebServerApplicationContext创建Web容器Tomcat示例”,以下是完整攻略: ServletWebServerApplicationContext创建Web容器Tomcat示例 什么是ServletWebServerApplicationContext ServletWebServerApplicationCo…

    Java 2023年5月19日
    00
  • Java swing实现酒店管理系统

    Java swing是一个Java GUI工具包,可以用来实现面向对象编程。下面我将详细讲解如何使用Java swing实现一个酒店管理系统。 步骤一:创建GUI界面 Java swing基于MVC模式,所以我们需要先设计GUi界面。为了实现一个酒店管理系统,我们至少需要如下界面: 登录界面(用来让用户输入用户名和密码,进入系统) 主界面(根据用户的角色,动…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部