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日

相关文章

  • 如何实现线程安全的单例模式?

    以下是关于如何实现线程安全的单例模式的完整使用攻略: 什么是线程安全的单例模式? 线程安全单例模式是指在多线程环境下,保证有一个实例对象被创建,并且多个线程可以同时访问该实例对象,而不会出现数据不一致或程序崩溃等问题。在多线程编程中,线程安全的单例模式是非常重要的,因为多个线程同时访问单例对象,会出现线程间争用的问题,导致数据不一致或程序崩溃。 如何实现线程…

    Java 2023年5月12日
    00
  • 使用smartupload组件实现jsp+jdbc上传下载文件实例解析

    使用smartupload组件实现JSP+JDBC上传下载文件,需要经过以下步骤: 下载SmartUpload组件 从官方网站 http://smartupload.io/ 下载最新版本的SmartUpload组件(smartupload.jar),并将其添加到项目的classpath中。 配置Web.xml 在Web.xml中配置SmartUpload的处…

    Java 2023年6月15日
    00
  • Spring Boot web项目的TDD流程

    SpringBoot Web项目的TDD流程 TDD(Test-Driven Development)是一种软件开发方法,它强调在编写代码之前先编写测试用例,并通过测试用例来驱动代码的开发。在SpringBoot Web项目中,TDD可以帮助我们提高代码质量和可维护性,减少代码缺陷和重构成本。以下是一个完整的SpringBoot Web项目的TDD流程: 1…

    Java 2023年5月15日
    00
  • 分页技术原理与实现之无刷新的Ajax分页技术(三)

    我来详细讲解一下“分页技术原理与实现之无刷新的Ajax分页技术(三)”的完整攻略。 1. 理解Ajax分页技术原理 在使用Ajax技术实现无刷新分页的过程中,主要涉及到以下几个方面: 1.1 客户端与服务端的交互 当用户点击分页按钮时,浏览器向服务端发送一个包含分页参数的HTTP请求,请求数据页的内容。服务端接收到请求后,生成分页数据并将其返回给浏览器。 1…

    Java 2023年6月15日
    00
  • JSP连接Access数据库

    JSP连接Access数据库的过程可以分为以下几个步骤: 1. 安装Access驱动程序 在JSP连接Access数据库之前需要先安装Microsoft Access数据库驱动程序,可以从Microsoft官网下载,并按照说明进行安装。 2. 导入Access数据库到项目中 在JSP项目中创建一个lib文件夹,将Microsoft Access数据库驱动程序…

    Java 2023年6月15日
    00
  • springboot2中使用@JsonFormat注解不生效的解决

    下面我将为您详细讲解“springboot2中使用@JsonFormat注解不生效的解决”的完整攻略。 背景 在使用 Spring Boot 2.x 开发 Web 应用时,经常需要将 Java 对象转换成 JSON 格式数据,这时候就需要使用到 Jackson 序列化工具。在使用 Jackson 序列化的过程中,我们可以通过 @JsonFormat 注解来控…

    Java 2023年5月26日
    00
  • 详解java之redis篇(spring-data-redis整合)

    下面是详细讲解“详解java之redis篇(spring-data-redis整合)”的完整攻略。 概述 本篇文章主要介绍了如何在Java中使用Redis缓存,以及使用Spring Data Redis整合Redis。在文章中,会介绍到Redis的基础概念、安装和配置Redis环境、使用Redis缓存数据、以及使用Spring Data Redis实现缓存的…

    Java 2023年5月20日
    00
  • 用Java连接sqlserver数据库时候几个jar包的区别分析

    用Java编程语言连接SQL Server数据库时,需要使用特定的JDBC(Java数据库连接)驱动程序。在使用JDBC驱动程序时,需要引入相应的jar包。本文将为您介绍在连接SQL Server数据库时使用的几个jar包,并对它们的区别进行分析。 1. jtds.jar jtds.jar是连接SQL Server数据库时最常使用的jar包之一。它是一个纯J…

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