繁体   English   中英

如何在 Eclipse 中添加对另一个现有项目的 Maven 依赖项

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM