部署SpringCloud项目无法加上依赖一起打包

写了一个springcloud项目,准备到linux环境上,但生成的jar包一直运行不了,然后找了很多资料,改了一个又出现新bug,卡在这折腾了一天
我的项目结构:teach-evaluate为父项目,在pom中控制版本号
commons为被依赖的项目,包括所有实体类和工具类
所有其他项目都依赖commons
在这里插入图片描述

编译的Jar包运行不了: no main manifest attribute

需要先在mainClass中标识springboot的入口类
build标签下一定不能有 pluginManagement 标签

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
<!--                    <executable>true</executable>-->
                    <includeSystemScope>true</includeSystemScope>
                    <mainClass>xxx</mainClass>
                </configuration>
            </plugin>
        </plugins>

</build>

如上 为springboot的maven插件,用这个插件打包会生成一个jar包和一个.jar.original文件
打成的jar包可以直接运行,但是不能传递依赖
在这里插入图片描述
按理说都已经导入依赖了,结果还是无法引入依赖
解决方案(三选一):
1、不要将此插件放到顶级父工程中,在需要打成可执行jar的地方添加就好了,如果是被依赖的,就不要添加此插件,如果即依赖A 又被C依赖,则不用
(如上述案例中,就是commons和最外层的父项目不加,其他都需要加);

2、在需要对外提供依赖的项目的pom里设置(如本项目的commons),这样设置会让项目生成两个jar:一个可执行jar,一个可依赖的jar;

<build>    
	<plugins>        
		<plugin>            
			<groupId>org.springframework.boot</groupId>           
			 <artifactId>spring-boot-maven-plugin</artifactId>            
			 <configuration>                
				 <!-- 生成可执行的jar的名字:xxx-exec.jar -->                
				 <!-- 不固定,写成abcd都可以 -->                
				 <classifier>exec</classifier>            
			 </configuration>        
		 </plugin>    
	 </plugins>
 </build>

3、在commons中的configuration中加入skip标签,取消生成可执行jar;

<build>    
	<plugins>        
		<plugin>            
			<groupId>org.springframework.boot</groupId>            
			<artifactId>spring-boot-maven-plugin</artifactId>            
			<configuration>                
				<skip>true</skip>            
			</configuration>        
		</plugin>    
	</plugins>
</build>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值