Maven 编译报无法找到符号(在编辑器里面没有红线,引用同一个项目其他模块)

今天自己写一个项目玩, 其中有一个api的模块依赖了common模块的东西,但是在maven编译的时候,就是找不到符号。

文章目录

          • 1. 清除idea缓存重新启动:
          • 2. 清除本地jar包重新编译
          • 4.编码统一

网上有很多种解决办法:

1. 清除idea缓存重新启动:

Maven 编译报无法找到符号(在编辑器里面没有红线,引用同一个项目其他模块)_第1张图片
Maven 编译报无法找到符号(在编辑器里面没有红线,引用同一个项目其他模块)_第2张图片

2. 清除本地jar包重新编译
4.编码统一

Maven 编译报无法找到符号(在编辑器里面没有红线,引用同一个项目其他模块)_第3张图片
都不好使!!!!!
终于找到了答案:
因为我在被引入的common 和 api 项目中添加的编译插件是Spring-Boot的,所以生成的jar包中的文件目录是不对的,所以找不到。正确做法
在父目录中引入

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

在需要执行生成Spring-Boot项目的子module中引入

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

这两种插件打包出来的class的文件目录是不一样的,感兴趣的可以自己打包之后看下。

你可能感兴趣的:(Maven)