一
no compiler is provided in this environment .perhaps you are running on a jre rather than a jdk
这个报错主要是因为项目依赖的JRE System Library 不是jdk
可以通过查看和修改项目根目录的.classpath文件解决
二
一个大的模块下包含三个小的模块,结构如下,consumer和provider依赖common,最外层父工程打包方式为pom,子工程打包方式为jar
在最外层打开命令行执行如下命令,执行到provider或者consumer的之后报错编译失败,依赖的common包里的一些类找不到,但是这两个项目都可以正常启动,由此推断打出来的common的jar包有问题,检查jar包发现所有的包和类都放到了BOOT-INF文件夹中,由此可以判断是springboot的打包插件有问题
mvn clean //此命令是为了清理工程,删除之前打包生成的文件
mvn package //打包工程
mvn install //将打包后的工程安装到本地仓库
springboot打包插件如下
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
修改为maven原生的打包插件后打包成功
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
三
多模块的maven工程的打包顺序
1:父工程
2:子工程中的公共工程
3:子工程中的普通工程
如果执行了1,2之后子工程依然报错,依赖的一些公共工程里的类找不到,就把1,2执行生成的文件安装到本地仓库