Maven如何构建可执行的jar包(包含依赖jar包)

Maven是一个流行的Java构建工具,可以自动化构建、管理和部署Java项目。将Java项目打包成可执行的jar包是Maven常见的一个任务,特别是包含依赖jar包的情况。以下是构建可执行的jar包的完整攻略:

步骤一:配置Maven pom.xml文件

在Maven项目的根目录下,打开pom.xml文件,添加以下插件和配置:

<build>
  <plugins>
    <!-- 用于将项目打包成可执行的jar包 -->
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

<!-- 打包后生成可执行的jar包的配置 -->
<packaging>jar</packaging>

<!-- 配置需要打包的类路径,包含所有的依赖jar包 -->
<dependencies>
  <!-- 项目依赖 -->
</dependencies>

步骤二:运行Maven打包命令

在命令行中进入项目根目录,运行以下Maven命令:

mvn clean package

步骤三:查看生成的可执行的jar包

运行上一步命令后,Maven将会在target/文件夹下生成一个名为xxx.jar的可执行的jar包。执行以下命令运行这个jar包:

java -jar xxx.jar

这个命令将会启动你的Java项目,包含所有依赖的jar包。

示例 1:Spring Boot项目的可执行的jar包构建:

<dependencies>
  <!-- Spring Boot依赖 -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <!-- 其他依赖 -->
</dependencies>

<!-- 其他配置 -->

<build>
  <plugins>
    <!-- 用于将项目打包成可执行的jar包 -->
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

<packaging>jar</packaging>

示例 2:非Spring Boot项目依赖jar包打包到可执行的jar包:

<dependencies>
  <!-- 项目依赖 -->
  <dependency>
    <groupId>com.googlecode.json-simple</groupId>
    <artifactId>json-simple</artifactId>
    <version>1.1</version>
  </dependency>
</dependencies>

<!-- 其他配置 -->

<build>
  <plugins>
    <!-- 用于将项目打包成可执行的jar包 -->
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    <!-- 用于将所有依赖jar包打包到可执行的jar包 -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.2.4</version>
      <configuration>
        <shadedArtifactAttached>true</shadedArtifactAttached>
        <shadedClassifierName>exec</shadedClassifierName>
        <transformers>
          <transformer
            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
            <mainClass>com.xxx.Main</mainClass>
          </transformer>
        </transformers>
      </configuration>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

<packaging>jar</packaging>

以上就是使用Maven构建可执行的jar包(包含依赖jar包)的完整攻略,示例中包括了Spring Boot项目和普通Java项目的构建方式,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Maven如何构建可执行的jar包(包含依赖jar包) - Python技术站

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

相关文章

  • JSP连接MySQL数据库详细步骤

    下面为您详细讲解JSP连接MySQL数据库的步骤。 1. 准备工作 在开始连接MySQL数据库之前,需要先进行准备工作: 安装MySQL数据库 下载MySQL的Java Connector(JDBC)驱动 2. 导入JDBC驱动包 将下载好的JDBC驱动包(.jar文件)导入到您的web项目中。您可以将该驱动包放置在WEB-INF/lib文件夹下,或者添加到…

    Java 2023年5月20日
    00
  • Java命令行下Jar包打包小结

    下面是Java命令行下Jar包打包的完整攻略。 1. 准备工作 在进行Jar包打包前,需要先下载并安装JDK,以及配置好Java环境变量。具体步骤可以自行百度或Google。 2. 创建Java程序 在这里先简单介绍一下,如果已经有Java程序,可以跳过这一步。使用eclipse等开发工具创建一个简单的Java程序,示例代码如下: public class …

    Java 2023年5月26日
    00
  • 超详细讲解SpringBoot参数校验实例

    标题:超详细讲解SpringBoot参数校验实例 简介 SpringBoot是一款非常流行的开源Java框架,它提供了方便的依赖注入、自动配置和可扩展性。在使用SpringBoot开发Web应用时,我们不可避免地需要对用户传入的参数进行校验,本文将详细讲解如何使用SpringBoot进行参数校验。 步骤 1. 添加依赖 要使用SpringBoot参数校验,我…

    Java 2023年5月20日
    00
  • SpringBoot中打war包需要注意事项

    SpringBoot中打war包需要注意的事项 SpringBoot默认情况下是以jar包形式运行的,如果需要将SpringBoot项目部署到Web容器中,就需要将项目打成war包。下面是几个需要注意的事项: (1)修改项目的打包方式 在pom.xml文件中,将项目打包方式设置为war,并且去掉spring-boot-starter-web依赖的scope,…

    Java 2023年5月20日
    00
  • jetty运行时无法保存文件的解决方法

    问题描述: 在使用Jetty web服务器时,有可能会出现无法保存文件的问题。这主要是由于jetty用户没有足够的权限保存文件。那么如何解决这个问题呢? 解决方法: 以下是“jetty运行时无法保存文件的解决方法”的完整攻略: 为Jetty用户授权。 通常情况下,Jetty运行时使用的是与服务器系统中的其他用户不同的用户账号,这个用户可能没有权限保存文件。因…

    Java 2023年6月16日
    00
  • 什么是程序计数器?

    程序计数器(Program Counter Register)是一种用于存储当前线程正在执行的指令地址的内存区域。程序计数器是线程私有的,每个线程都有自己程序计数器。在 Java 虚拟机中,程序计数器一种较小的内存区域,其通常为几个字节。 程序计数器的主要作用是记录当前线程正在执行的指令地址,以便在发生线程切换时能够恢复执行。在 Java 虚拟机中,线程切换…

    Java 2023年5月12日
    00
  • Java实现复制文件并命名的超简洁写法

    下面详细讲解一下Java实现复制文件并命名的超简洁写法的完整攻略。 1. 确定文件路径 首先,我们需要确定需要复制的文件的路径以及复制后生成文件的路径。可以使用Java中的File类来实现: File sourceFile = new File("原始文件路径"); File targetFile = new File("目标文…

    Java 2023年5月19日
    00
  • Java实现局域网聊天室功能(私聊、群聊)

    Java实现局域网聊天室功能(私聊、群聊)攻略 1. 功能简介 本文将介绍如何使用Java语言实现一个局域网聊天室,实现私聊和群聊的功能。 局域网聊天室指的是可以在同一局域网内的多台电脑之间进行实时通信,同时支持私聊和群聊。基于此框架,可以扩充出更多的功能,例如文件传输、语音聊天等。 本文所提供的方法并非唯一,但本文介绍的实现方案为Java原生Socket通…

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