关于maven项目打jar包运行main方法

关于maven项目打jar包运行main方法因项目需要,在main方法中需读取spring配置文件,完成插入操作。然后打包成jar包,运行main方法。具体操作:main方法中读取spring文件:ClassPathXmlApplicationContextcontext=newClassPathXmlApplicationContext(“spring-mybatis.xml”);要改成你自己的配置文件。Service…

大家好,又见面了,我是你们的朋友全栈君。

因项目需要,在main方法中需读取spring配置文件,完成插入操作。然后打包成jar包,运行main方法。
具体操作:
main方法中读取spring文件:

ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-mybatis.xml");
要改成你自己的配置文件。

Service es = context.getBean(Service.class);
es.insert();
大体就是这样,在main方法中读取配置文件,一些具体操作要根据项目进行。

接下来打jar包,使用了maven-shade-plugin插件。
参考https://blog.csdn.net/defonds/article/details/43233131这篇文章,
写的很详细。

<packaging>jar</packaging>
打包方式记得要是jar

<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>1.4</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<filters>
								<filter>
									<artifact>*:*</artifact>
									<excludes>
										<exclude>META-INF/*.SF</exclude>
										<exclude>META-INF/*.DSA</exclude>
										<exclude>META-INF/*.RSA</exclude>
									</excludes>
								</filter>
							</filters>
							<transformers>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<mainClass>这里指定你要运行的main主类</mainClass>
								</transformer>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
									<resource>META-INF/spring.handlers</resource>
								</transformer>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
									<resource>META-INF/spring.schemas</resource>
								</transformer>
							</transformers>
						</configuration>
					</execution>
				</executions>
			</plugin>

打jar的话直接maven install或者在你的pom文件这层目录下 执行 mvn clean package命令。
打包完成后可在你的target目录下查看打包好的jar包。
接下来运行jar包,刚开始运行的时候一直报错

java.lang.NoClassDefFoundError: javax/servlet/ServletContext

解决方法:
关于maven项目打jar包运行main方法
<scope></scope>注释掉以后,正常运行
然后放在服务器上运行,后续更新。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150924.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JavaScript下载本地文件

    JavaScript下载本地文件网上很多关于JS下载文件操作的代码,都过于繁杂,偶然找到这个方法,务必记录一下,太简单实用了/Template/MaterielDictionary.xlsx为文件相对路径,后边参数可不动。window.open(‘/Template/MaterielDictionary.xlsx’,’newwindow’,’height=100,width=400,top=0

    2022年6月10日
    171
  • Qt的QFile

    Qt的QFile在这里可以说是Qt的帮助文档一样了!确定不进来看看QFile这个东西怎么用么!

    2022年6月14日
    90
  • 加盟网建设优化备忘

    加盟网建设优化备忘

    2021年11月17日
    36
  • nginx自动重启_nginx无法启动

    nginx自动重启_nginx无法启动http://blog.csdn.net/zqinghai/article/details/71125045ps-ef|grepnginx平滑重启命令:kill-HUP住进称号或进程号文件路径或者使用/usr/nginx/sbin/nginx-sreload注意,修改了配置文件后最好先检查一下修改过的配置文件是否正确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置…

    2022年8月13日
    6
  • rs232c高电平脉冲对应的ttl逻辑是(单片机串口是什么电平)

    目录一、串口协议和RS-232标准1、串口协议2、RS-232标准一、串口协议和RS-232标准1、串口协议串口通讯(SerialCommunication)是一种设备间非常常用的串行通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。通讯协议,我们以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。2、RS-232标准…

    2022年4月17日
    55
  • docker镜像操作_docker主要特性

    docker镜像操作_docker主要特性前言Docker的三大核心概念:镜像、容器、仓库。初学者对镜像和容器往往分不清楚,学过面向对象的应该知道类和实例,这跟面向对象里面的概念很相似我们可以把镜像看作类,把容器看作类实例化后的对象。|

    2022年7月29日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号