如何使用MAVEN打JAR包(直接使用)

下面是如何使用MAVEN打JAR包的完整攻略。

步骤一:创建Maven项目

首先需要创建一个Maven项目,可以使用Maven自带的命令创建,具体步骤如下:

  1. 打开控制台,执行如下命令创建项目:
mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart
  1. 等待Maven完成项目的创建,并进入到项目根目录。

步骤二:编写代码

在项目中编写需要打包成JAR文件的代码,这里就不赘述了,可以自行编写需要的代码。

步骤三:配置pom.xml文件

  1. 配置打包方式

在pom.xml文件中,需要配置如下plugin:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.0.2</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.example.demo.App</mainClass> <!-- 指定启动类 -->
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

上面的plugin设置了使用maven-jar-plugin插件,同时配置了manifest中的addClasspath选项为true,表示JAR包中包含classpath路径,还指定了mainClass的值为com.example.demo.App,表示启动类的包路径。

  1. 配置项目依赖

如果需要使用其他第三方库,则需要在pom.xml文件中添加它们的依赖。以引入SLF4J及其Log4j实现为例,配置如下:

<dependencies>
    <!-- SLF4J日志框架 -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
    </dependency>

    <!-- Log4j2实现 -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.8.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.8.2</version>
    </dependency>
</dependencies>

更多依赖项可以参考Maven中央仓库

步骤四:执行打包命令

执行如下Maven打包命令,将项目打包成JAR文件:

mvn package

命令执行完成后,在项目的target目录中,会生成my-app-1.0-SNAPSHOT.jar文件(如果你使用的是示例命令创建的项目,则生成的文件名是my-app.jar)。

示例一:打包一个hello world程序

  1. 创建一个名为helloworld的Maven项目
mvn archetype:generate -DgroupId=com.example -DartifactId=helloworld -DarchetypeArtifactId=maven-archetype-quickstart
  1. 修改pom.xml文件,添加如下配置:
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.0.2</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.example.App</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>
  1. 编写一个hello world程序,在src/main/java/com/example/App.java中添加如下代码:
package com.example;

public class App {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
  1. 执行打包命令:
mvn package

执行完成后,在target目录下生成helloworld-1.0-SNAPSHOT.jar文件。

  1. 运行jar包

在终端中输入下列命令:

java -jar target/helloworld-1.0-SNAPSHOT.jar

控制台打印出Hello World!即可。

示例二:打包一个Web项目

  1. 创建一个名为webproject的Maven项目
mvn archetype:generate -DgroupId=com.example -DartifactId=webproject -DarchetypeArtifactId=maven-archetype-webapp
  1. 修改pom.xml文件,添加如下配置:
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.0.2</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.example.App</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>
  1. 在src/main/java/com/example/目录下创建App.java文件,并添加如下代码:
package com.example;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class App implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("Web project started.");
    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("Web project stopped.");
    }
}

这里实现了ServletContextListener接口,声明Web项目的启动和停止时需要执行的操作。

  1. 在src/main/webapp/WEB-INF/目录下创建web.xml文件,添加如下Servlet配置:
<web-app>
  <servlet>
    <servlet-class>com.example.HelloServlet</servlet-class>
    <servlet-name>hello-servlet</servlet-name>
  </servlet>
  <servlet-mapping>
    <servlet-name>hello-servlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
  <listener>
    <listener-class>com.example.App</listener-class>
  </listener>
</web-app>
  1. 在src/main/java/com/example/目录下创建HelloServlet.java文件,添加如下代码:
package com.example;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "HelloServlet", urlPatterns = {"/hello"})
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        resp.getOutputStream().println("Hello World!");
    }
}

这里实现了Servlet接口,并覆盖了doGet方法,在访问/hello路径时返回"Hello World!"字符串。

  1. 执行打包命令:
mvn package

执行完成后,在target目录下生成webproject-1.0-SNAPSHOT.jar文件。

  1. 运行jar包

在终端中输入下列命令:

java -jar target/webproject-1.0-SNAPSHOT.jar

访问http://localhost:8080/hello即可看到返回的"Hello World!"字符串。

通过以上示例,可以看到如何使用Maven打包成JAR文件,并执行相关操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何使用MAVEN打JAR包(直接使用) - Python技术站

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

相关文章

  • Springboot处理异常的常见方式

    在Springboot中,异常处理是一个非常重要的话题。对于Web应用程序来说,它尤其重要,因为在 Web 应用程序中,您需要处理各种类型的异常,并向客户端发送有意义的响应。本文将为您介绍在Springboot中处理异常的常见方式。 异常处理的概念 异常处理:所谓异常处理,就是在应用程序执行出错时,能够捕获到错误并对其进行处理,让应用程序继续运行的一种技术。…

    Java 2023年5月27日
    00
  • IntelliJ IDEA 中必有得插件和配置

    让我来详细讲解一下“IntelliJ IDEA 中必有得插件和配置”的攻略。 为了让开发者能够更加高效地编写代码,IntelliJ IDEA 提供了丰富的插件和配置选项。以下是一些必备的插件和配置: 一、必备插件 1.1 Lombok Lombok 是一款能够帮助开发者消除 Java 代码中冗余、繁琐的语法的插件。它能够自动生成 getter、setter、…

    Java 2023年5月20日
    00
  • 利用ECharts.js画K线图的方法示例

    下面是关于“利用ECharts.js画K线图的方法示例”的完整攻略。 什么是K线图 K线图是一种专业股票分析图表,它能够充分反映出股票市场的交易情况和趋势走势。K线图是由四个价格点构成的,包括开盘价、收盘价、最高价和最低价,每个价格点都用线条或实体块来表示。 使用ECharts.js绘制K线图 ECharts.js是一款非常强大的JavaScript图表库,…

    Java 2023年6月15日
    00
  • AngularJS实现的生成随机数与猜数字大小功能示例

    实现AngularJS生成随机数和猜数字大小功能的示例,需要遵循以下几个步骤: 步骤1:创建页面 创建一个HTML页面,并导入AngularJS库文件。在页面中创建两个按钮,分别用于生成随机数和猜测数字大小。同时,为了显示随机数和猜测结果,还需要添加两个文本框。 <!DOCTYPE html> <html ng-app> <he…

    Java 2023年6月15日
    00
  • layui树形菜单动态遍历的例子

    layui树形菜单动态遍历的完整攻略 1. 前置条件 要实现layui树形菜单的动态遍历,需要先了解Layui框架的基本使用以及树形菜单的基本实现原理。 2. 实现过程 (1)准备数据源 要在页面上实现树形菜单的动态遍历,首先需要准备数据源。数据源可以是静态的,也可以从数据库、接口等动态获取。在本次示例中,以JSON格式的静态数据为例: var data =…

    Java 2023年6月15日
    00
  • java事务的概念浅析

    接下来我将详细讲解“Java事务的概念浅析”的完整攻略。 Java事务的概念浅析 什么是事务 在计算机领域,事务是指一组对系统中数据的访问和更新操作,这组操作要么全都执行成功,要么全都不执行,保证了数据的一致性。事务是一种能够保证数据在一些列操作中的完整性和一致性的数据处理方式。 事务的ACID属性 在数据库中,事务必须同时具备ACID四个属性: 原子性(A…

    Java 2023年5月20日
    00
  • Java图形用户界面之列表框

    下面是Java图形用户界面之列表框的完整攻略: 一、什么是列表框? 列表框(JList)是 Java Swing 组件之一,它除了能够显示列表以外,还能与其他组件协同工作,允许用户进行选择和编辑,非常适用于多项选择的情况下。 二、列表框的基本用法 1. 创建列表框 使用 JList 类创建一个列表框: JList list = new JList(); 2.…

    Java 2023年5月26日
    00
  • Flex与.NET互操作 使用FileReference+HttpHandler实现文件上传/下载

    Flex与.NET互操作 使用FileReference+HttpHandler实现文件上传/下载 概述 本文主要介绍如何通过Flex和.NET相互配合,实现文件上传/下载。 在介绍具体步骤之前,先简单介绍FileReference和HttpHandler。 FileReference是Flex中处理文件上传/下载的类,使用FileReference类可以实…

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