【发布时间】:2022-02-02 03:54:31
【问题描述】:
我正在尝试学习有关 Java 微服务的 udemy 教程,但遇到了 Maven 问题。我在 Eclipse 中有 3 个项目(帐户、卡和贷款),如下所示:
卡和贷款取决于帐户。我通过配置构建路径并将帐户项目添加到贷款和卡的类路径中,在 Eclipse 中添加了这些依赖项。贷款控制器中的代码引用了在accounts中定义的Customer对象:
package com.eaztbytes.loans.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.eaztbytes.accounts.model.Customer;
import com.eaztbytes.loans.model.Loans;
import com.eaztbytes.loans.repository.LoansRepository;
@RestController
public class LoansController {
@Autowired
private LoansRepository loansRepository;
@PostMapping("/myLoans")
public List<Loans> getLoansDetails(@RequestBody Customer customer) {
List<Loans> loans = loansRepository.findByCustomerIdOrderByStartDtDesc(customer.getCustomerId());
if (loans != null)
return loans;
else
return null;
}
}
从 Eclipse 构建和运行帐户、贷款和卡片(作为 Java 应用程序)确实可以正常工作。从命令行为帐户运行 mvn clean and install 时,一切正常,没有错误。但是在为贷款运行 mvn install 时,我收到以下错误:
[ERROR] 无法执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project loan:编译失败:编译失败: [错误] /Users/j/dev/udemy-ms-1/loans/src/main/java/com/eaztbytes/loans/controller/LoansController.java:[10,36] com.eaztbytes.accounts.model 包确实不存在 [错误] /Users/j/dev/udemy-ms-1/loans/src/main/java/com/eaztbytes/loans/controller/LoansController.java:[21,57] 找不到符号 [错误] 符号:客户类 [错误] 位置:com.eaztbytes.loans.controller.LoansController 类 [错误] -> [帮助 1]
本教程没有提到任何关于 Maven 依赖项的内容,并且他们的贷款 pom.xml 没有对帐户的依赖项(请参阅their github code here)。我确实注意到教程步骤和我的个人经历之间存在其他小的不一致,但我认为这一定是由于操作系统、Java 版本、Maven 版本等的差异。所以,我右键单击 Maven -> 添加依赖关系,并添加帐户。贷款中的 pom.xml 已更新以包含对帐户的引用:
<dependency>
<groupId>com.eaztbytes</groupId>
<artifactId>accounts</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
不幸的是,这对解决上述错误没有帮助。我确保帐户 jar 存在于 .m2 文件夹中,并确保在尝试清洁和安装贷款之前从命令行进行了清洁和安装的帐户。我知道 Eclipse 做了一些神奇的 wrt 依赖,但我不明白我缺少什么。为什么maven看不到account jar?!
【问题讨论】: