Maven模块构建问题:导入domain类提示无法解析符号domain
让我帮你一步步排查并解决这个问题,这里有几个关键的配置错误需要修正:
1. 修正Model子项目的打包类型
你的model子项目当前设置了<packaging>pom</packaging>,这种打包类型是用于聚合项目或父项目的,不会编译Java代码也不会生成可被其他模块依赖的jar包。而你的model是存放领域对象的业务模块,需要产出jar包供backend调用,所以要把打包类型改成jar:
<!-- model子项目的pom.xml --> <packaging>jar</packaging>
2. 调整Backend项目的依赖方式
你现在把backend的parent设置为model,这是不合理的——model是业务模块,不是通用父项目。正确的做法是让backend依赖model模块,同时保持backend自己的Spring Boot父依赖(如果它是Spring Boot应用的话):
修改backend的pom.xml,恢复Spring Boot作为父项目,然后添加model的依赖:
<!-- backend子项目的pom.xml --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.9.RELEASE</version> <relativePath/> </parent> <groupId>com.platsbruts</groupId> <artifactId>backend</artifactId> <version>0.0.1-SNAPSHOT</version> <name>platsbrutsBackend</name> <description>platsbruts Backend</description> <!-- 添加对model模块的依赖 --> <dependencies> <dependency> <groupId>com.platsbruts</groupId> <artifactId>model</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <!-- 其他业务依赖... --> </dependencies>
3. 修正导入路径
你的领域对象User是定义在model项目中的,所以正确的导入路径应该指向model的包结构,而不是backend的包。假设你的User类在model项目的com.platsbruts.model.domain包下,那么导入语句应该改为:
import com.platsbruts.model.domain.User;
最后一步:重新构建项目
做完以上修改后,执行以下Maven命令确保依赖正确同步:
# 如果有根聚合项目,在根目录执行 mvn clean install # 或者先在model项目执行install,再在backend项目执行compile
这样应该就能解决“cannot resolve symbol domain”的错误了。
内容的提问来源于stack exchange,提问作者en Lopes




