Maven连同关联依赖一起打包成可执行jar

Maven连同关联依赖一起打包成可执行jar


前言

Maven可以使用mvn package指令对项目进行打包生成jar文件,如果直接使用java -jar xxx.jar指令运行jar文件,会出现”no main manifest attribute, in xxx.jar”(没有设置Main-Class)、ClassNotFoundException(找不到依赖包)等错误。

要想jar包能直接通过java -jar xxx.jar运行,需要满足:

1、在jar包中的META-INF/MANIFEST.MF中指定Main-Class,这样才能确定程序的入口在哪里;

2、要能加载到依赖包。

使用Maven有多种打包插件,可以生成满足以上两个条件能直接运行的jar包,这里主要介绍一种,这种方式,可以将仓库依赖以及本地依赖一起打包成一个可执行jar。


一、前提知识

1、使用maven将项目打包成jar,对于非maven项目需要先进行转成maven项目。
在idea中,创建pom.xml文件,然后右键该文件。

2、使用maven添加仓库依赖和添加本地依赖
仓库依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.57</version>
</dependency>

本地依赖:(指定项目jar的路径)

<dependency>
    <groupId>lib.zz1</groupId>
    <artifactId>zz1pdz</artifactId>
    <version>0.0.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/zz1/zz1pdz.jar</systemPath>
</dependency>

3、对于一些资源配置文件,若想一同打入jar中,可以通过方式;并指定指定maven编译的jdk版本

<build>
<!-- 指定打包资源 -->
    <sourceDirectory>src</sourceDirectory>
    <resources>
        <resource>
            <directory>spd</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>src</directory>
            <includes>
                <include>**/*.xml</include>
                <include>**/*.properties</include>
            </includes>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plu
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值