记录一下 SpringCloud 打包 Unable to find main class,程序包xxx不存在,找不到符号

一,首先,明确一个问题,能用命令就用命令, idea 右侧快捷不好用。

      mvn clean package:完成编译,测试,打包,但是没有把打好的可执行包放到本地远程仓库。

      mvn clean install:完成编译,测试,打包,并且放到本地仓库。

      mvn clean depoly:完成编译,测试,打包,并且放到本地以及远程仓库。

      PS:clean 操作,能够解决项目引导类打包 出现的莫名其妙的问题,最好加上。

 

二, SpringBoot 关于编译的插件,自带的打包需要 main 方法!并且不可被依赖!

<plugin>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

     :如果父工程,pom 中加了这个,那么各个模块打包,都会检测 main 方法,并且打包不能用于依赖。

     解决办法:

  1,把 父类 pom 下,打包 插件改为:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
          <source>1.8</source>
          <target>1.8</target>
       <encoding>UTF-8</encoding>
      </configuration>
</plugin>

    此时,可以去把 common,model,api,utils 等公共模块进行 mvn clean install 打包(此时公共包就可以被依赖了),看看本地仓库好有了没。

 2, 最好,spring-boot-maven-plugin,不在父级下加,而是那个包需要 可执行,哪个就加。

 3,可以继续 调整 plugin 配置:

 <plugin>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-maven-plugin</artifactId>
  <!--这样会生成两个 jar,一个可依赖,一个可执行并且后缀为 -execute -->
     <configuration>
           <classifier>execute</classifier>
     </configuration>
</plugin>

      如果不想要可执行 jar,那么

<classifier>execute</classifier> 改成 <skip>true</skip>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值