当前位置: 首页 > article >正文

maven install的时候报Unable to find main class

目录

    • 问题描述
    • 解决办法
      • 解决方案一:添加一个主函数
      • 解决方案二:将不是web工程的设置跳过
      • 解决方案三:打包插件的作用本质上就是将当前项目所依赖的jar打包到一块,这样jar包就可以运行了,我们完全可以把parent的pom.xml的build打包插件给去掉,哪里需要打包就在哪个子项目的pom.xml上添加。

问题描述

common包由于不是web项目所以我寻思不用放main主函数方法。然后删除掉之后就打包异常了。

正常我们打出来的jar包可以通过java-jar来运行jar包的,运行jar包的时候实际上就是去访问程序当中的主函数方法,所以不管是不是web工程,都不可以没有主函数。

打包的时候我是对父工程进行的clean和install。项目使用了聚合工程,所以对父工程打包就相当于执行整个项目的。

解决办法

需要注意的:父工程<packaging>pom</packaging>一定要设置为pom

解决方案一:添加一个主函数

虽然他不是web工程,但是我们依旧可以在包下新建一个类,然后创建一个主函数方法。这样可以避免打包异常。

假如项目当中存在多个主函数,那他还会打包成功吗?我们来做一下试验:

事实证明他会不知道使用哪个主函数而报异常

解决方法:

解决方案二:将不是web工程的设置跳过

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
               <configuration>
                <skip>true</skip>
            </configuration>
		</plugin>
	</plugins>
</build>

解决方案三:打包插件的作用本质上就是将当前项目所依赖的jar打包到一块,这样jar包就可以运行了,我们完全可以把parent的pom.xml的build打包插件给去掉,哪里需要打包就在哪个子项目的pom.xml上添加。

可能会有人对这有疑问,web项目引用了common工程,那common工程都没有打包插件,web工程会受影响吗,答案是不会的,关于这一点我已经验证过了。如下将web工程的jar包解压后,会发现尽管common没有主函数,他依然将common打成了jar包,封装到了自己jar包下,而且项目还可以正常运行。

在这里插入图片描述


http://www.kler.cn/news/16796.html

相关文章:

  • 财报解读:照明行业景气上行,欧普照明已步入增长“快车道”
  • Noah-MP陆面过程模型建模方法与站点、区域模拟实践技术
  • linux命令之tar详解
  • 快速了解车联网V2X通信
  • 接踵而至,昆仑万维天工大语言模型发布
  • Linux必会100个命令(六十)curl
  • 小满nestjs(第二十八章 nestjs 事务)
  • 1.软件测试
  • 常见元件、封装、尺寸、表面处理等
  • C语言中的三种语句
  • fastai2 实现SSD
  • 1699_simulink代码生成配置初级方案
  • 【Java】内部类Object类
  • SpringBoot整合Redis实现点赞、收藏功能
  • @TransactionalEventListener的使用和实现原理
  • 【五一创作】【Simulink】采用延时补偿的三相并网逆变器FCS-MPC
  • 如何在CentOS上详细安装PageOffice进行企业文档管理和协作
  • Java 基础入门篇(五)—— 面向对象编程
  • 05_从0运行,重定位,初始化,中断再到定时器
  • kafka单机配置
  • 探索三维世界【3】:Three.js 的 Geometry 几何体 与 Material 材质
  • 《QDebug 2023年4月》
  • 烟火识别智能监测系统 yolov5
  • 生物信息学中---数据集不平衡的处理方法
  • 小红书违禁词有哪些,小红书违禁词汇总分享
  • 来上海一个月的记录、思考和感悟
  • ffmpeg-mov-metadate不识别Bug修复
  • JUC多并发编程 Synchronized与锁升级
  • Spring的创建与使用
  • 两分钟成为 ChatGPT 国内高手【不要再拿ChatGPT当百度用了】