在依赖关系正确的情况下,执行 mvn install 提示找不到软件包

发布于:2025-08-03 ⋅ 阅读:(10) ⋅ 点赞:(0)

项目中的generator模块依赖user模块,依赖关系配置正确,但是执行mvn install提示找不到相应的软件包。

generatorpom.xml配置如下所示

<!-- user 模块 -->
<dependency>
    <groupId>com.xxx</groupId>
    <artifactId>user</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <scope>compile</scope>
</dependency>

项目的根 pom.xml 依赖关系如下所示

    <modules>
        <module>common</module>
        <module>user</module>
        <module>gateway</module>
        <module>generator</module>
    </modules>

依赖关系配置正确,但是在执行mvn install时就是报找不到 user 模块中的某个枚举类。使用 trae 检测后,找到了问题:

检查user模块的pom.xml文件,确认其打包配置是否正确,以确保编译后的类文件被正确包含在JAR中:

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

修改user模块的pom.xml文件,为spring-boot-maven-plugin添加classifier配置,确保生成可被依赖的普通JAR包:

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

执行mvn clean install,发现一切正常。

之前的问题是由于 Spring Boot Maven 插件默认生成的可执行JAR包结构特殊,导致其他模块无法正常依赖其中的类。通过在 pom.xml 中添加<classifier>exec</classifier>配置,让插件同时生成两种JAR包:

  1. exec分类器的可执行JAR(用于运行应用)
  2. 不带分类器的普通JAR(用于其他模块依赖)

这样 generator 就能正确引用 user 中的 枚举类,从而解决编译错误。


网站公告

今日签到

点亮在社区的每一天
去签到