Spring Boot 如何解决maven安装错误:找不到符号?

2hh7jdfx  于 2023-11-17  发布在  Spring
关注(0)|答案(1)|浏览(144)

我已经开发了spring Boot 微服务,负责用户身份验证和授权。现在,作为最后一步,我想将这些微服务dockerize。要做到这一点,我需要每个微服务都有其目标文件夹和jar文件。为了做到这一点,我使用maven clean,然后在我的ide中使用maven install。对于所有微服务,它都工作正常,除了identity-service。所以,有一个微服务amqp(消息队列),它负责rabbit mq配置以及发布消息。身份服务(目前唯一的一个),使用amqp类RabbitMQMessageProducer发布消息。在其pom文件中,有一个依赖项:

<dependency>
            <groupId>com.tradebit</groupId>
            <artifactId>amqp</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

字符串
所以,一切正常,identity-service成功地与amqp交互,消息被发布,没有错误等。但是,当我运行maven install时,我得到一个错误cannot find symbol。所以,它可能无法识别amqp依赖项或idk。Amqp target folder如屏幕截图所示。
我尝试重新导入依赖项,多次执行amqp和身份服务的干净安装。问题仍然存在。

k7fdbhmy

k7fdbhmy1#

我可以猜测amqp模块是一个常见的模块,基于它和项目结构/想法,作为解决这个问题的修复,当谈论mvn install命令的compile阶段时。
pom.xml文件末尾的amqp模块上添加下一个构建插件:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <classifier>rabbit-common</classifier>
                            <excludes>
                                <exclude>**/ApiGatewayApplication*</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

字符串
它只会为模块创建另一个.jar,其中将排除Main Class
同样在identity-service中,你必须声明amqp依赖项为下一个:

<dependency>
        <groupId>com.tradebit</groupId>
        <artifactId>amqp</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <classifier>rabbit-common</classifier>
    </dependency>


它将在编译时修复这个问题。
另外,我是如何知道maven不允许依赖于可执行的jar.amqp模块是一个可执行的Sping Boot 应用程序。

相关问题