java - 找不到符号 - Spring Boot Maven 兄弟作为依赖
问题描述
使用 Maven spring boot 插件重新打包没有帮助。
- 尝试清理 .m2 文件夹。
- 从 sts 和命令行构建项目。
- 添加了组件扫描器以扫描实体,但在 maven 构建本身时失败。
- 添加了 Spring Boot Maven 插件以重新打包为可执行 jar 选项,似乎没有任何帮助。
父 pom 包含 spring boot starter
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
以及以下模块
<modules>
<module>client-data</module>
<module>eureka-server</module>
<module>eureka-client-service-1</module>
<module>eureka-client-service-2</module>
</modules>
eureka-client-service-1
并eureka-client-service-2
具有client-data
依赖性。
由于client-data
是一个spring-boot
具有包类型的项目jar
,因此添加了以下代码以uber jar
在客户端数据中创建一个pom.xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
仍然在执行mvn clean install -amd -e
以下错误
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project eureka-client-service-1: Compilation failure: Compilation failure:
[ERROR] /C:/Users/balaji/trashcan/pcf-eureka-show-case/eureka-client-service-1/src/main/java/org/balaji/java/jee/pcf/eureka/client/service_1/boundary/EurekaClientEmployeesServiceEndpoint.java:[16,65] package org.balaji.java.jee.pcf.eureka.client.data.controller does not exist
[ERROR] /C:/Users/balaji/trashcan/pcf-eureka-show-case/eureka-client-service-1/src/main/java/org/balaji/java/jee/pcf/eureka/client/service_1/boundary/EurekaClientEmployeesServiceEndpoint.java:[17,61] package org.balaji.java.jee.pcf.eureka.client.data.entity does not exist
[ERROR] /C:/Users/balaji/trashcan/pcf-eureka-show-case/eureka-client-service-1/src/main/java/org/balaji/java/jee/pcf/eureka/client/service_1/boundary/EurekaClientEmployeesServiceEndpoint.java:[27,5] cannot find symbol
[ERROR] symbol: class OrganizationDataFixtureAdapter
[ERROR] location: class org.balaji.java.jee.pcf.eureka.client.service_1.boundary.EurekaClientEmployeesServiceEndpoint
[ERROR] /C:/Users/balaji/trashcan/pcf-eureka-show-case/eureka-client-service-1/src/main/java/org/balaji/java/jee/pcf/eureka/client/service_1/boundary/EurekaClientEmployeesServiceEndpoint.java:[42,32] cannot find symbol
[ERROR] symbol: class Employee
[ERROR] location: class org.balaji.java.jee.pcf.eureka.client.service_1.boundary.EurekaClientEmployeesServiceEndpoint
解决方案
对于“有什么方法可以在不更改项目结构的情况下删除 spring-boot 行为”的问题。
=> 您可以覆盖子 pom 文件中的 spring-boot-maven-plugin 行为。
参考这里:如何在另一个项目中向 Spring Boot Jar 添加依赖项?
Spring Boot 1.x
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.20.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
...
</plugin>
Spring Boot 2.x 如果您使用的是 spring-boot-starter-parent,则 repackage 目标会在 id 为 repackage 的执行中自动执行。在该设置中,仅应指定配置,如下例所示:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>repackage</id>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
...
</plugin>
推荐阅读
- kubernetes - Prometheus 使用多个目标
- git - 如何在 Jenkins 上添加 dockerhub 凭据?
- java - HashMap 行为怪异
- php - 如果 php 和 jQuery 选中或未选中,则在 php 中动态创建复选框值
- html - 当我打印带有背景图像的 HTML 页面时,没有显示文本
- javascript - D3.js 在决策树中绘制菱形和连接链接
- javascript - 将javascript函数输出分配给液体变量
- image - 第一次打开或清除所有数据时,React Native 应用程序加载 url 图像很慢
- python - 使用 spacy 自定义标记器时 ReversibleField 失败
- python - 我尝试使用 pip 安装 win32gui,但出现此错误。我正在使用 python 3.8.5,我也有最新版本的 pip