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

问题描述:在对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文件夹下(没有该文件夹就自己手动创建)
maven打包可执行jar以及依赖包_第1张图片

打包可执行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即可

你可能感兴趣的:(maven,jar,java)