0430---maven 项目打包为可运行jar包的步骤及应注意事项

maven 项目打包为可运行jar包的步骤

一 测试环境

  1. java8 SDK
  2. maven3.6.3
  3. idea 2020

二 新建项目

  1. New Project -->选择 maven
    在这里插入图片描述
  2. 新建包 com.gmri.mvn_test

在这里插入图片描述

  1. 在新建的包中,新建类MyStarter
package com.gmri.mvn_test;

public class MyStarter {
    public static void main(String[] args) {
        System.out.println("Hello MyStarter!");
    }
   
}
  1. 运行 MyStarter,显示结果如下
    在这里插入图片描述
  2. 使用 maven,打包为 jar包有2种方法
  • 通过双击 maven工具Lifecycle 的 package
    在这里插入图片描述

  • 在 Idea的 Terminal Dos命令窗口执行 mvn 命令

mvn clean package -Dmaven.test.skip=true
  1. 在命令窗口,切换到 target目录,运行生成的 jar包,程序没有正确运行,显示如下信息
    在这里插入图片描述
    遇到这个问题,是因为jar包没有设置主类的入口。

三 遇到的问题及解决办法

1 方法1—直接修改jar包

通过压缩工具7-zip打开jar包,找到清单目录文件(META-INF -->MANIFEST.MF ),编辑MANIFEST.MF文件:

  1. 打开压缩包
    在这里插入图片描述

  2. 定位META-INF文件夹的MANIFEST.MF文件
    在这里插入图片描述

  3. 修改MANIFEST.MF文件

在这里插入图片描述
添加Main-Class: com.gmri.mvn_test.MyStarter ,注意书写格式。箭头1处要有一空格,箭头2处要有换行符

  1. 运行修改后的jar包,一切OK
    在这里插入图片描述

2 方法2 —打包时指定mainclass

在maven工程中,修改项目配置文件pom.xml,添加插件并设置主类。

    ....
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.4</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.gmri.mvn_test.MyStarter</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    ...		

打包后的 jar包就是可直接运行的jar包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值