用Maven打成可执行jar,包含maven依赖,本地依赖的操作

Maven 是一个强大的项目管理工具,可以帮助开发者自动下载和安装项目所需的依赖,并且可以将项目打包成可执行的 jar 文件。下面是用 Maven 将项目打包成可执行的 jar,同时包含 Maven 依赖和本地依赖的操作攻略。

1. 在 pom.xml 文件中配置插件

在 Maven 的 pom.xml 文件中,可以通过配置插件的方式来打包成可执行的 jar 文件,并且将需要的依赖包含在该 jar 文件中。

下面是一个示例的 pom.xml 文件,其中使用了 maven-assembly-plugin 插件来达到上述目的:

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

在上述的 pom.xml 文件中,首先在 build 标签下配置了使用的插件 maven-assembly-plugin,然后在该插件的 configuration 标签下配置了将 jar 文件打包时需要的一些信息,比如主类的名称。最后,在该插件的 execution 标签中配置了将该插件绑定到 Maven 的打包周期中。

2. 执行打包命令

在配置好 pom.xml 文件之后,只需要执行 Maven 的打包命令即可将代码打包成可执行的 jar 文件,该文件会包含所有的 Maven 依赖和本地依赖。

下面是一个使用 Maven 打包成 jar 文件的示例:

mvn clean compile assembly:single

在上述命令中,clean 表示在打包前清理之前的打包信息,compile 表示编译代码,assembly:single 表示将代码打包成可执行的 jar 文件,并且包含所有的依赖。

示例 1:打包Spring Boot项目成可执行的jar

在执行上述操作的过程中我们通常需要考虑如何将 Spring Boot 项目打包成可执行的 jar 文件,并且包含所有的依赖。

通过在项目的 pom.xml 文件中配置 spring-boot-maven-plugin 插件,即可将 Spring Boot 项目打包成可执行的 jar 文件。下面是一个示例的 pom.xml 文件:

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

在上述的 pom.xml 文件中,我们直接配置了 'spring-boot-maven-plugin' 插件,该插件会在打包时自动将 Spring Boot 的依赖包含在生成的 jar 文件中。

在配置好 pom.xml 文件后,我们只需要执行如下命令即可将 Spring Boot 项目打包成可执行的 jar 文件:

mvn spring-boot:repackage

示例 2:打包含有本地依赖的项目成可执行的jar

有时候我们的项目需要使用一些本地的依赖,这时候我们需要将这些本地依赖打包到 jar 文件中,否则将无法正常运行。

在使用 Maven 打包含有本地依赖的项目时,我们需要在 pom.xml 文件中配置 maven-jar-plugin 插件,具体配置方法参见上文。在具体实施时,我们还需要将本地依赖打包成一个 jar 文件。

下面是一个示例的 pom.xml 文件:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>3.1.1</version>
      <configuration>
        <archive>
          <manifest>
            <mainClass>com.example.Main</mainClass>
          </manifest>
        </archive>
      </configuration>
    </plugin>
  </plugins>
</build>

在上述的 pom.xml 文件中,我们配置了 maven-jar-plugin 插件,同时指定了需要打包的主类,以及输出的 jar 文件的名称。

在配置好 pom.xml 文件后,我们只需要执行如下命令即可将含有本地依赖的项目打包成单个可执行的 jar 文件,该文件包含了所有的依赖:

mvn clean compile assembly:single

至此,我们介绍了如何使用 Maven 将项目打包成可执行的 jar 文件,并且包含了所有的 Maven 依赖和本地依赖。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用Maven打成可执行jar,包含maven依赖,本地依赖的操作 - Python技术站

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

相关文章

  • 关于Java虚拟机HotSpot

    关于Java虚拟机HotSpot完整攻略 Java虚拟机(JVM)是Java语言的核心组件之一,它是Java语言跨平台特性的基石。HotSpot是目前最流行的Java虚拟机之一,它是由Sun Microsystems公司开发的,现在则由Oracle维护。本文将详细介绍HotSpot的概念、工作原理、性能调优和问题排查。 HotSpot的概念 HotSpot是…

    Java 2023年5月26日
    00
  • SpringBoot多数据源配置并通过注解实现动态切换数据源

    下面就为你详细讲解如何实现Spring Boot多数据源配置,并通过注解实现动态切换数据源的完整攻略。 1. 添加依赖 首先,在pom.xml文件中添加Spring Boot与MySQL相关的依赖: <dependencies> <!– Spring Boot相关依赖 –> <dependency> <group…

    Java 2023年5月20日
    00
  • 日期与时间【Date/SimpleDateFormat/Calendar】

    视频链接:https://www.bilibili.com/video/BV1Cv411372m?p=121&vd_source=9140dcc493e34a9f4e95ca2f8f71bbd3 1 Data 1.1 Date类概述 Date类的对象在java中代表的是当前所在系统的此刻日期时间。 Date的构造器 public Date():创建一…

    Java 2023年5月6日
    00
  • Java日期工具类操作字符串Date和LocalDate互转

    让我来详细讲解一下“Java日期工具类操作字符串Date和LocalDate互转”的攻略: 1. Date和LocalDate互转的原理 在Java中,Date和LocalDate是两种表示日期的方式,Date是旧版的日期工具类,而LocalDate是Java8之后新增的日期工具类。它们之间的区别主要在于精度和使用方式上。 Date表示的精度是毫秒级别的时间…

    Java 2023年5月20日
    00
  • 解决tomcat发布工程后,WEB-INF/classes下文件不编译的问题

    当我们在开发Web应用程序时,通常会将Java源代码放置在WEB-INF/classes目录下以便编译。 但有时候,当我们发布Web应用程序到Tomcat容器中时,我们发现Web应用程序无法正常工作,这时我们可能需要解决一个经典的问题:Tomcat发布工程后,WEB-INF/classes下文件不编译的问题。 那么,如何解决这个问题呢?下面是具体的攻略: 检…

    Java 2023年5月26日
    00
  • 使用dynamic datasource springboot starter实现多数据源及源码分析

    下面我们来详细讲解使用dynamic datasource springboot starter实现多数据源及源码分析的完整攻略。 什么是dynamic datasource springboot starter? dynamic datasource springboot starter是一款基于spring boot的多数据源解决方案,可以支持动态添加和…

    Java 2023年5月20日
    00
  • Spring Data默认值的错误解决

    下面是关于“Spring Data默认值的错误解决”的完整攻略。 问题背景 在使用Spring Data JPA时,我们可能会遇到默认值的问题。例如,如果实体类中有一个字段的默认值为null,当我们在保存实体时,这个字段会被插入数据库,导致错误。 解决方案 解决这个问题的方法是使用Spring Data提供的@DynamicInsert和@DynamicUp…

    Java 2023年6月3日
    00
  • Java定时任务的三种实现方法

    让我来详细讲解“Java定时任务的三种实现方法”的完整攻略吧。 1. 基于TimerTask实现Java定时任务 策略步骤 创建Timer对象 继承TimerTask类实现task任务 调度task任务执行 示例代码 import java.util.Timer; import java.util.TimerTask; public class TimerT…

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