maven打包可执行jar以及依赖包

本文探讨了在MVC项目中如何解决打包问题,作者分享了从使用WAR包到jetty部署,再到打包fatjar的曲折过程,并详述了如何导出依赖、配置maven插件以创建可执行jar,以及正确设置classpath和mainClass。

问题描述:在对mvc工程打包时,尝试了很多办法,比如打war包放入tomcat服务器跑,但是可能是因为项目本身使用的是jetty服务器,因此会报出一些莫名其妙的错误🤷‍♀️。然后尝试下载jetty服务器,将打好的war包放入jetty运行,可是可能因为不熟悉jetty,运行好像没问题,但是测试不出结果🤷‍♀️。后来尝试打可执行jar,在网上找了打fat jar的方法,但是实际测试的时候问题也是层出不穷🤷‍♀️。。。
我的解决方法:还是使用可执行jar的方式,不过只将本工程打包成可执行jar,对其依赖的jar另外进行打包🎈。具体方法如下:

将maven依赖文件导出指定目录

mvn dependency:copy-dependencies -DoutputDirectory=lib  -DincludeScope=runtime

使用该命令将会把项目依赖的所有jar包导出到工程目录的lib文件夹下(没有该文件夹就自己手动创建)
在这里插入图片描述

打包可执行jar

使用如下命令将项目打包可执行jar:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
                <mainClass>
                    org.test.start
                </mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>

addClasspath: 是否在项目文件中添加classpath。默认为false。如果为true,则会在项目文件中添加classpath,这样在启动的时候就不用再手动指定classpath了。将外部jar包依赖加入到classPath中。

classpathPrefix: classpath的前缀。本质上,这个配置的值是所依赖jar包所在的文件夹,只有配置正确了才能找到依赖。

mainClass: 指定启动时的Main Class

在maven中选择clean–package 然后run maven build 即可

使用方式

打包完成后,将可执行jar与lib(lib中就是第一步时产生的放依赖jar的文件夹)
在这里插入图片描述
进入命令行 输入 java -jar xxxx.jar即可

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值