[英]how do I add a Maven dependency on another existing project in Eclipse
我正在尝试遵循有关 Java 微服务的 udemy 教程,但我遇到了 Maven 问题。 我在Eclipse中有3个项目(账户、卡和贷款)如下:
卡和贷款取决于帐户。 我通过配置构建路径并将账户项目添加到贷款和卡的类路径中,在 Eclipse 中添加了这些依赖项。 贷款 controller 中的代码是指客户 object,它在账户中定义:
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 时,我收到以下错误:
[错误] 无法执行目标 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] package com.eaztbytes.accounts.model does not exist [ERROR] /Users/j /dev/udemy-ms-1/loans/src/main/java/com/eaztbytes/loans/controller/LoansController.java:[21,57] cannot find symbol [ERROR] symbol: class Customer [ERROR] location: class com.eaztbytes.loans.controller.LoansController [错误] -> [帮助 1]
本教程没有提到 Maven 依赖项及其贷款 pom.xml 对帐户没有依赖项(请参阅他们的 github 代码在这里)。 I did notice other small inconsistencies between the tutorial steps and my personal experience of going through it, but I thought that must be due to difference in OS, Java versions, Maven versions, etc. So, I right-clicked on Maven -> Add依赖关系,并添加帐户。 贷款中的 pom.xml 已更新以包含对帐户的引用:
<dependency>
<groupId>com.eaztbytes</groupId>
<artifactId>accounts</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
不幸的是,这对上述错误没有帮助。 我确保帐户 jar 存在于 .m2 文件夹中,并确保在尝试清洁和安装贷款之前,我从命令行建立了清洁和安装帐户。 我知道 Eclipse 做了一些神奇的 wrt 依赖,但我不明白我错过了什么。 为什么 maven 看不到账户 jar?!
您可以像添加任何其他依赖项一样添加依赖项。 然而,这种依赖只在 Eclipse 内部有效。 如果想在命令行运行Maven,找不到依赖的引用。 为了克服这个问题,您可以使用mvn install
在本地存储库中安装依赖项。 这使得它可用于 Maven 构建在同一台机器上。 它不会远程部署在任何地方(Maven Central、Nexus 等); 这就是mvn deploy
的用途。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.