项目场景:
操作系统:macOS 3.7.2 (22H313)
开发工具:IntelliJ IDEA 2024.2.4 (Community Edition) 汉化版
问题描述
在选择”项目结构->工件“后,新增jar包构建时,发现如果选择“提取到目标JAR(E)”后,在需要选择“主类©”时,如下图所示:
(具体操作可以见我的原创博客内容:https://blog.youkuaiyun.com/yanyucsdn/article/details/144491707?spm=1001.2014.3001.5501)
项目构建后,会在项目根目录下生成一个/项目根目录/out/artifacts/项目名称/项目名称_jar/项目名称.jar(注意这个没有版本编号,在项目中的pom.xml中有配置版本信息)。
打开终端,选择到jar包生成目录下,执行下面命令进行该jar包验证:
java -jar 项目名称.jar //没有版本编号,和pom.xml中的设置不同
执行结果报如下错误信息,服务没有启动成功:
(项目pom.xml中设置如下图所示)
解决方案:
项目是springboot框架下开发的,所以需要用idea的maven功能模块进行打包。
首先,用idea的maven模块执行clean操作,如下图所示:
按照上图操作后,可以清除maven中已有的内容(原来项目中因为测试已经存在的target会被清除),如果需要只打包代码部分(也有网友叫小包),点击上图中的package即可,如果需要打包带上依赖包的内容,点击上图中的install即可。
点击package/install后,会在项目的根目录下重新生成一个target文件夹,其中包含了最新生成的class文件和jar包,细心的朋友会发现这个target中新生成的jar包名称中带着和pom.xml中配置版本号相同的内容(我这里是0.0.1版本),可以通过修改pom.xml中的配置版本信息来改变生成的jar包版本名称。
使用终端进入target文件夹路径下,执行:
java -jar 项目名称-0.0.1-SNAPSHOT.jar
服务顺利启动,放在新服务器上同样启动成功(有些情况为避免JDK版本兼容问题,建议先安装和开发环境一样的JDK到要运行服务的服务器上),结果如下: