Maven将代码及依赖打成一个Jar包的方式详解(最新推荐)

yizhihongxing

下面是详细讲解Maven将代码及其依赖打成一个Jar包的完整攻略:

前提条件

在开始前,需要确保在本地预装了Maven,并已经配置好了Maven环境变量。

Step 1:创建Maven项目并导入依赖

在命令行窗口中,进入到要创建项目的目录,执行以下命令:

mvn archetype:generate -DgroupId=your.group.id -DartifactId=your-artifact-id -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

其中,groupIdartifactId分别代表项目的组名和项目名,可以自定义。这个命令会创建一个基本的Maven项目,并将其导入到Maven仓库中。

接下来,在项目的pom.xml文件中,添加所需要的依赖,例如:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>

这里添加了一个JUnit的依赖,用于测试。

Step 2:在pom.xml文件中指定Main Class

在项目的pom.xml文件中,需要添加以下代码:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.example.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

这个配置告诉Maven将哪个类作为Main Class。这里以com.example.Main为例。在打包Jar包的时候,这个Main Class会被放入Jar包的Manifest文件中。

Step 3:打包成Jar包

在命令行窗口中,在项目的根目录下运行以下命令:

mvn package

这会将项目打包成一个Jar文件,并将其放在target/your-artifact-id-1.0-SNAPSHOT.jar路径下。

Step 4:运行Jar包

在命令行窗口中,运行以下命令:

java -jar target/your-artifact-id-1.0-SNAPSHOT.jar

这会运行打包好的Jar包。

示例1

为了更好的理解Maven将代码及依赖打成一个Jar包的方式,这里举个实际的例子,在这个例子中,我们使用了Lombok和Log4j2两个依赖。

导入依赖

为了使用Lombok和Log4j2,需要在项目的pom.xml文件中添加以下依赖:

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.20</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.14.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.14.1</version>
    </dependency>
</dependencies>

指定Main Class

在项目的pom.xml文件中,需要添加以下代码:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.example.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <version>1.18.20</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>log4j-api</artifactId>
                    <version>2.14.1</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>log4j-core</artifactId>
                    <version>2.14.1</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

打包成Jar包

在命令行窗口中,在项目的根目录下运行以下命令:

mvn package

这会将项目打包成一个Jar文件,并将其放在target/your-artifact-id-1.0-SNAPSHOT.jar路径下。

运行Jar包

在命令行窗口中,运行以下命令:

java -jar target/your-artifact-id-1.0-SNAPSHOT.jar

这会运行打包好的Jar包。

示例2

下面再举一个例子,这里使用Jackson和HttpClient两个依赖。

导入依赖

为了使用Jackson和HttpClient,需要在项目的pom.xml文件中添加以下依赖:

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.12.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.13</version>
    </dependency>
</dependencies>

指定Main Class

在项目的pom.xml文件中,需要添加以下代码:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.example.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-databind</artifactId>
                    <version>2.12.3</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.httpcomponents</groupId>
                    <artifactId>httpclient</artifactId>
                    <version>4.5.13</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

打包成Jar包

在命令行窗口中,在项目的根目录下运行以下命令:

mvn package

这会将项目打包成一个Jar文件,并将其放在target/your-artifact-id-1.0-SNAPSHOT.jar路径下。

运行Jar包

在命令行窗口中,运行以下命令:

java -jar target/your-artifact-id-1.0-SNAPSHOT.jar

这会运行打包好的Jar包。

以上就是Maven将代码及依赖打成一个Jar包的攻略完整过程,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Maven将代码及依赖打成一个Jar包的方式详解(最新推荐) - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • 细致解读希尔排序算法与相关的Java代码实现

    细致解读希尔排序算法与相关的Java代码实现 算法介绍 希尔排序(Shell Sort)是插入排序的一种高效的改进算法,也称作缩小增量排序,通过设定一个增量序列来先进行一定量的插入排序,然后逐步减小增量,最后增量为1时再进行一次插入排序,从而达到排序的效果。 希尔排序的过程如下: 设定一个增量序列(如:{1,3,7,15,…}),对于序列进行遍历; 对于…

    Java 2023年5月26日
    00
  • Hibernate validator使用以及自定义校验器注解

    Hibernate Validator是一个基于JSR 380规范的Java Bean验证库,它能够为Java Bean的属性提供各种验证规则,比如非空、长度、邮箱格式等。在本文中,我们将学习如何使用Hibernate Validator进行Java Bean的验证,同时介绍如何自定义校验器注解。 1. 添加Hibernate Validator依赖 首先,…

    Java 2023年5月20日
    00
  • SpringBoot Kafka 整合使用及安装教程

    下面我来给你详细讲解“SpringBoot Kafka 整合使用及安装教程”的完整攻略。 1. 安装Kafka Kafka是一个开源的分布式流处理平台,它由Scala和Java编写而成。首先我们需要安装Kafka: 访问Kafka官网:http://kafka.apache.org/downloads 选择Kafka的版本,推荐使用最新版本 解压下载好的文件…

    Java 2023年5月20日
    00
  • SpringMVC访问静态资源的三种方式小结

    在SpringMVC中,访问静态资源是非常常见的操作。本文将介绍SpringMVC访问静态资源的三种方式。 1. 使用标签 标签是SpringMVC提供的一种访问静态资源的方式。我们可以在SpringMVC的配置文件中使用标签来配置静态资源的访问路径和存放路径。例如: <mvc:resources mapping="/static/**&qu…

    Java 2023年5月18日
    00
  • Java消息摘要算法MAC实现与应用完整示例

    我会给出完整的“Java消息摘要算法MAC实现与应用完整示例”的攻略。本文将从以下几个方面进行讲解: 什么是MAC MAC的实现方式 实现Java消息摘要算法MAC Java消息摘要算法MAC的应用 1. 什么是MAC MAC是消息认证码(Message Authentication Code)的简称,它是一种用于验证数据完整性以及认证消息来源的密码学算法。…

    Java 2023年5月19日
    00
  • java查找文件夹下最新生成的文件的方法

    要查找一个文件夹下最新生成的文件,可以使用Java中的File类和Stream API。以下是步骤列表: 用File类打开文件夹(也可以是目录): File folder = new File("path/to/folder"); 获取文件夹下所有的文件, File[] files = folder.listFiles(); 按照文件名进…

    Java 2023年5月20日
    00
  • 解决Spring Security中AuthenticationEntryPoint不生效相关问题

    解决Spring Security中AuthenticationEntryPoint不生效相关问题,主要有以下几个步骤: 确认AuthenticationEntryPoint是否配置正确 在Spring Security配置文件中,需要配置AuthenticationEntryPoint,用来处理认证失败后的跳转或返回错误信息。一些常见的Authentica…

    Java 2023年5月20日
    00
  • spring boot 本地图片不能加载(图片路径)的问题及解决方法

    在Spring Boot应用程序中,有时候我们会遇到本地图片不能加载的问题,这通常是由于图片路径不正确导致的。在本文中,我们将详细讲解这个问题的原因,并提供两个示例来说明如何解决这个问题。 问题原因 在Spring Boot应用程序中,我们通常将静态资源(如图片、CSS和JavaScript文件)放在src/main/resources/static目录下。…

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