问题描述
:在对mvc工程打包时,尝试了很多办法,比如打war包放入tomcat服务器跑,但是可能是因为项目本身使用的是jetty服务器,因此会报出一些莫名其妙的错误♀️。然后尝试下载jetty服务器,将打好的war包放入jetty运行,可是可能因为不熟悉jetty,运行好像没问题,但是测试不出结果♀️。后来尝试打可执行jar,在网上找了打fat jar的方法,但是实际测试的时候问题也是层出不穷♀️。。。
我的解决方法
:还是使用可执行jar的方式,不过只将本工程打包成可执行jar,对其依赖的jar另外进行打包。具体方法如下:
mvn dependency:copy-dependencies -DoutputDirectory=lib -DincludeScope=runtime
使用该命令将会把项目依赖的所有jar包导出到工程目录的lib文件夹下(没有该文件夹就自己手动创建)
使用如下命令将项目打包可执行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
即可