项目中的generator
模块依赖user
模块,依赖关系配置正确,但是执行mvn install
提示找不到相应的软件包。
generator
的pom.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
包:
- 带
exec
分类器的可执行JAR
(用于运行应用) - 不带分类器的普通
JAR
(用于其他模块依赖)
这样 generator
就能正确引用 user
中的 枚举类,从而解决编译错误。