【问题标题】:how do I add a Maven dependency on another existing project in Eclipse如何在 Eclipse 中添加对另一个现有项目的 Maven 依赖项
【发布时间】: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?!

【问题讨论】:

    标签: java eclipse maven


    【解决方案1】:

    您可以像添加任何其他依赖项一样添加依赖项。然而,这种依赖只在 Eclipse 中有效。如果想在命令行运行Maven,找不到依赖的引用。为了克服这个问题,您可以使用mvn install 在本地存储库中安装依赖项。这使得它可用于同一台机器上的 Maven 构建。它不会远程部署在任何地方(Maven Central、Nexus 等);这就是mvn deploy 的用途。

    【讨论】:

    • 这证实了我的想法。谢谢。但是,我确实将帐户 jar 添加到本地 maven 存储库并确认它在那里。如上所述,然后我在 Eclipse 中的 Maven 依赖项菜单中添加了对帐户的依赖项,它修改了贷款 pom.xml 并添加了对帐户的引用。 mvn install 仍然产生同样的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 2015-05-06
    • 2016-10-19
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多