maven install时报错:程序包不存在以及找不到类

文章目录

  • 报错背景
  • 报错详情
  • 报错剖析
  • 解决办法
  • 总结

报错背景

微服务中两个子工程相互依赖时,出现程序包不存在找不到目标类

报错详情

maven-compiler-plugin:3.8.1:compile (default-compile) @ gtw ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /Users/cuizongbao/code/cloud-alibaba-demo/gtw/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /Users/cuizongbao/code/cloud-alibaba-demo/gtw/src/main/java/com/cuizb/cloud/alibaba/gtw/controller/GtwServiceImpl.java:[3,39] 程序包com.cuizb.dubbo.demoservice.api不存在
[ERROR] /Users/cuizongbao/code/cloud-alibaba-demo/gtw/src/main/java/com/cuizb/cloud/alibaba/gtw/controller/GtwServiceImpl.java:[29,13] 找不到符号
  符号:DubboDemoService
  位置:com.cuizb.cloud.alibaba.gtw.controller.GtwServiceImpl
[INFO] 2 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE

报错剖析

  1. 包路径是否正常
  2. pom.xml是否引入
  3. jar包是否冲突

结果发现都正常。

但是就是没有依赖。最后发现是spring-boot-maven-plugin它的问题。

解决办法

spring-boot-maven-plugin这个插件打包的Jar包可以直接运行,但是不可依赖。所以interface自始至终就没有依赖,自然会说找程序包不存在或者找不到类

修改pom.xml的maven插件配置

<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.bootgroupId>
				<artifactId>spring-boot-maven-pluginartifactId>
				
				<executions>
					<execution>
						<phase>nonephase>
					execution>
				executions>
				<configuration>
					<classifier>executeclassifier>
				configuration>
			plugin>
		plugins>
	build>

总结

一个微服务通常有两个子module,一般一个写实体类和接口一个写实现方法

  • common类、实体类、被被依赖的类,打包插件配置为
<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.bootgroupId>
				<artifactId>spring-boot-maven-pluginartifactId>
				
				<executions>
					<execution>
						<phase>nonephase>
					execution>
				executions>
				<configuration>
					<classifier>executeclassifier>
				configuration>
			plugin>
		plugins>
	build>
  • 其他类或者微服务可以正常配置:
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
build>

本文作者:Java技术债务
原文链接:https://www.cuizb.top/myblog/article/1648107069
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 3.0 CN协议进行许可。转载请署名作者且注明文章出处。

你可能感兴趣的:(Spring,Cloud,SpringBoot,Java,微服务,maven)