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日

相关文章

  • Java设计模块系列之书店管理系统单机版(二)

    我来详细讲解一下“Java设计模块系列之书店管理系统单机版(二)”的完整攻略。 首先,这篇攻略是一篇关于书店管理系统的设计,主要包括从需求分析到具体实现的全过程。在设计的过程中,作者使用了MVC模式,分为Model、View和Controller三个部分,实现了对数据的管理。同时,作者还介绍了一些设计模式的应用,如装饰器模式、工厂模式和适配器模式等。 接着,…

    Java 2023年5月24日
    00
  • Java+Selenium实现控制浏览器的启动选项Options

    一、关于Java+SeleniumJava+Selenium是用于Web应用程序自动化测试的最流行的工具组合。 Selenium支持大多数浏览器,并且具有简单易用的API。 二、控制浏览器的启动选项Options当使用Java+Selenium进行Web自动化测试时,我们可以通过控制浏览器的启动选项Options来更改浏览器的一些默认设置,例如窗口大小、启动…

    Java 2023年5月20日
    00
  • 让Java程序自动重启的实现方法(推荐)

    让我们来详细讲解一下“让Java程序自动重启的实现方法(推荐)” 实现的完整攻略。 1. 监听文件变化方式 这种方式是通过文件监听来实现的,当指定的文件发生变化时,可以通过管道的方式向Java程序发送消息,让程序自动重启。 首先,可以在Java代码中通过第三方库jnotify来实现文件监听。以下是一个示例代码: // 引入jnotify依赖 <depe…

    Java 2023年5月23日
    00
  • windows下的WAMP环境搭建图文教程(推荐)

    下面就是“windows下的WAMP环境搭建图文教程(推荐)”的完整攻略: 安装WAMP 首先,我们需要下载WAMP软件。可以在官网 https://www.wampserver.com/en/ 下载。 然后,运行下载的exe文件,按照提示一步步进行安装即可。安装过程中会出现一些选项,如安装路径和默认浏览器等,请根据自己的需求选择。 安装完成后,在系统托盘中…

    Java 2023年6月16日
    00
  • Java实现监听文件变化的三种方案详解

    Java实现监听文件变化的三种方案详解 在Java编程中,经常需要对文件进行监听,以便在文件发生更新时及时做出相应的处理。下面将介绍三种实现文件监听的方案,分别是Java 7的WatchService、commons-io库、以及第三方库jnotify。 1. Java 7的WatchService Java 7引入了WatchService API,它可以…

    Java 2023年5月20日
    00
  • java加密算法–MD5加密和哈希散列带秘钥加密算法源码

    下面我来详细讲解Java加密算法——MD5加密和哈希散列带秘钥加密算法源码的完整攻略。 MD5加密算法 概述 MD5(Message Digest Algorithm)是一种单向的哈希算法,可以将任意长度的数据加密成一个128位的二进制串。MD5算法将数据经过多次非线性函数变换和数据干扰后,生成一个唯一的128位散列码,具有很高的安全性,被广泛应用于数据的完…

    Java 2023年5月19日
    00
  • SpringSecurity构建基于JWT的登录认证实现

    SpringSecurity构建基于JWT的登录认证实现 本文将介绍如何使用SpringSecurity框架,在基于JWT的前后端分离应用中,实现登录认证功能。 准备工作 在开始介绍实现方案之前,我们需要准备好以下工具和环境: JDK 8 及以上版本 Maven 及其配置 Spring Boot Spring Security JWT Step 1: 创建项…

    Java 2023年5月20日
    00
  • Java多线程——基础概念

    Java多线程——基础概念 什么是进程和线程 在操作系统中,一个正在运行的程序称为进程(process),进程可以拥有多个相互独立执行流程,称为线程(thread)。一个进程中至少有一个主线程。 为什么需要使用多线程 多线程的主要目的是提高程序的效率,特别是在当程序需要同时执行多个耗时操作时,可以通过多线程将这些操作并发地执行,提高整个程序的执行效率。同时,…

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