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

下面是详细讲解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日

相关文章

  • 分析python动态规划的递归、非递归实现

    针对“分析Python动态规划的递归、非递归实现”这个主题,我将分为以下几个部分进行完整的讲解。 1. 什么是动态规划 动态规划(Dynamic Programming)是一种通过把原问题分解为相对简单的子问题的方式,以递推的方式求解复杂问题的技术。在动态规划中,我们通常会用到“备忘录”或“DP表”来记录以前求解过的值,从而避免重复计算,提高程序效率。 动态…

    Java 2023年5月26日
    00
  • Java后台实现浏览器一键导出下载zip压缩包

    关于Java后台实现浏览器一键导出下载zip压缩包的攻略,可以分为以下几个步骤: 步骤1:将需要下载的文件打包成zip压缩包 在Java后台中,我们可以使用java.util.zip包中的ZipOutputStream类来实现将多个文件打包成一个zip压缩包。具体实现代码如下: public static void zipFiles(List<File…

    Java 2023年5月19日
    00
  • 修改Tomcat默认访问根目录的方法

    当我们访问Tomcat服务器时,它默认会加载webapps目录下的ROOT应用程序。但是,有时我们想在不改变应用程序名称的情况下将默认访问目录更改为不同的目录。接下来,我将向您介绍如何在Tomcat服务器中修改默认访问目录的方法。 步骤一:定位server.xml文件 Tomcat服务器的配置文件位于Tomcat安装目录下的conf目录中。在此目录中,我们可…

    Java 2023年5月19日
    00
  • hibernate增删改查操作代码

    下面我将详细讲解 Hibernate 的增删改查操作代码的完整攻略。 首先,使用 Hibernate 进行增删改查操作需要遵循以下步骤: 配置 Hibernate 配置文件 hibernate.cfg.xml 创建 Hibernate 工厂对象 SessionFactory 创建 Session 对象 开启事务 执行相应的增删改查操作 提交事务 关闭 Ses…

    Java 2023年5月19日
    00
  • Java 中如何使用 stream 流

    使用 stream 流是 Java 中进行集合 operations 和 transformations 的便捷方法。在 Java 8 中,我们可以对集合进行过滤、映射、排序等操作,可以省去繁琐的 for 循环和 if 判断。下面是 Java 中使用 stream 流的攻略: 一、为集合创建 stream 流 在 Java 中使用 stream 流,需要先为…

    Java 2023年5月26日
    00
  • JWT全面解读和详细使用步骤

    JWT全面解读和详细使用步骤 什么是JWT? JWT(JSON Web Token)是用于身份验证和授权的开放标准(RFC 7519),根据规范,JWT由三部分组成:头部(header)、荷载(payload)和签名(signature)。 头部 头部包含两个元素:令牌类型(通常是JWT)和所使用的签名算法(例如HMAC SHA256或RSA)。 使用jso…

    Java 2023年5月19日
    00
  • 用java实现冒泡排序算法

    以下是用Java实现冒泡排序算法的完整攻略: 冒泡排序算法简介 冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就交换位置。重复地进行直到没有任何一对数字需要比较,即所有的数字按照从小到大(或从大到小)排序完成。 冒泡排序算法步骤 首先,比较相邻的两个元素,如果前面的元素大于后面的元素,就交换这两个元素的位置; …

    Java 2023年5月19日
    00
  • spring mvc 使用kaptcha配置生成验证码实例

    下面我会详细给您讲解“spring mvc 使用kaptcha配置生成验证码实例”的完整攻略,过程中会包含两条示例说明。 首先,您需要了解一下什么是Kaptcha。Kaptcha是Google的Java类库,用于生成验证码。它可以快速轻松地生成验证码,比如数字,字母和数字的组合,中文汉字等等。 接下来,我们来介绍一下在Spring MVC中如何使用Kaptc…

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