springboot多模块打包错误:Processterminated;Unabletof。。
这种错误有许多可能的错误之处,我的是因为:
我的项⽬结构⽬录(有三级):
    |---⽗项⽬
|---⼦模块
|---⼦⼦模块
  当我在创建⼦模块下的某个⼦⼦模块时,第⼀次创建就照常右击⼦模块,选择新建模块,写好新建的⼦⼦模块的名字后点击确定,发现刚创建的这个⼦⼦模块和⼦模块同⽬录(也就是它也在⽗项⽬下,和⼦模块同⼀等级)就像这样:
    |---⽗项⽬
|---⼦模块
|---⼦模块
  这肯定不⾏啊,这哪是创建⼦⼦模块,很明显我这是⼜创建了⼀个⼦模块,事与愿违,于是我就删了这个刚创建失败的模块,想重新在⼦模块下创建⼀个⼦⼦模块。于是就再右击⼦模块选择新建模块,可创建完后发现还是和⼦模块在同⼀层级下:
    |---⽗项⽬
|---⼦模块
|---⼦模块
后来经过询问后发现:
原来是在新建⼀个model时,Location写的不对,没有分层(当时创建的时候不知道为什么不是这种分级路径,可能是idea没反应过来吧):
看到了吗,parent是⽗项⽬、service是⼦模块、“⼦⼦门模块”就是我们要创建第三级模块也就是⼦⼦模块。
按照这种层级创建层能成功创建出三级模块:
    |---⽗项⽬
|---⼦模块
|---⼦⼦模块
unable
但是
当我运⾏测试代码的时候项⽬打包出错:(由于报的错没有详细记录) 其中有这个提⽰:
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:...repackage failed: Unable to find main class
控制台就两个红⾊单词:
Process terminated;
怎么解决?
还记得之前创建的那个⼦⼦⽬录吗?
要知道,每次创建模块,它都会在他的上⼀级的pom⽂件中⾃动⽣成这个东西,来标识该模块:
<modules>
<module>service</module>
  <module>⼦⼦模块</module>
</modules>
由于我创建失败的⼦⼦模块不在⼦模块下,⽽是在⽗项⽬下,与⼦模块同级,所以它会在⽗项⽬的pom⽂件中出现上⾯的那个标识:<module>⼦⼦模块</module>我们把这个模块去掉就⾏了,让⽗项⽬下只有⼦模块的module标识就⾏了:
<modules>
<module>service</module>
</modules>
不是吧
上⾯的东西改好后,我运⾏test测试⾥⾯的程序还是报错:
spring-boot-maven-plugin:2.5.3:repackage failed: Unable to find main class
没办法那就接着造呗。
去⽹上搜了许多这种错误的解决⽅案,终于到了:
该博客地址:www.dandelioncloud/article/details/1370378236395646978
这个博客的解决⽅式也很简单:
解决⽅式:
不使⽤springboot的maven插件,改为使⽤普通的maven插件,使⽤springboot的maven插件意味着每个模块都需要有启动类,⽽使⽤普通的插件则不需要。    <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
</build>
我把上⾯的⼀段配置替换掉之前⽗项⽬中的<build>配置后,再次打包运⾏果然好了。
很显然,当我们创建多个模块的时候,就会容易遇到这种错误,不过只要我们多多总结,多多思考做好笔记,就会....

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。