You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动