maven install的时候报Unable to find main class

问题描述

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包下,而且项目还可以正常运行。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怪 咖@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值