【问题标题】:Can't find class from maven dependency project无法从 Maven 依赖项目中找到类
【发布时间】:2012-04-03 00:27:33
【问题描述】:

[已关闭 - 我必须将类从 test/java 移动到 main/java 并通过 IDE“maven 选项”更新 maven 存储库]

我是 maven 新手,对 java 开发缺乏经验。我正在使用 IntelliJ Idea 作为 IDE。我正在使用 Maven 3.0.4。

我创建了一个“项目 A”和一个“项目 B”,每个项目都有一些类。现在,当我尝试在 project A 中创建对 project B 中的类的依赖项时,我似乎找不到任何属于 project B。当我检查 maven 存储库时,我可以看到一个 .jar 文件是基于 project B 创建的。

澄清一下:向项目B添加依赖项时,我确实找到了一个名为“项目B”的工件,但我无法找到任何类项目 B 的一部分。

我似乎无法访问和使用属于 project A 内的 project B 一部分的任何类,这会使安装变得毫无价值。 p>

--

请告诉我我应该提供哪些信息来帮助我解决这个问题。

[EDIT] 这是 project A 的 pom,它依赖于 project B。但是我要么不明白如何在我的项目中使用它,要么它不起作用。虽然我可以使用 IntelliJ 的功能来查找和添加工件,但 intelliJ 似乎找不到任何属于 project B 的类(虽然它确实找到属于其他预定义包的类在 Maven 存储库中):

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>planet</groupId>
    <artifactId>planet</artifactId>
    <version>1.0</version>
    <dependencies>
        <dependency>
            <groupId>toolbox</groupId>
            <artifactId>toolbox</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>


</project>

【问题讨论】:

  • poms,至少是相关部分(例如,至少是工件信息,以及 A 对 B 的依赖)。您如何添加依赖项。当您说“找不到属于项目 B 的任何类”时是什么意思。
  • A 对 B 的依赖还没有在 pom 中退出。这是我正在努力实现的目标。 IntelliJ 具有添加依赖项和按工件或类搜索的功能。这就是我所说的“找不到任何属于 project B 的类”。
  • 添加依赖即可;我不知道它是如何进行类搜索的——查看文档。
  • 当你在命令行执行mvn clean install会说什么?
  • 执行 mvn clean install 帮助我解决了问题。它是成功的,但似乎我忽略了一个警告,即没有要编译的类并且 jar 文件为空。问题是我把我的类放在 test/java 而不是 main/java 中。更新存储库后,我能够找到 project B 类并使其全部正常工作。这很愚蠢,但这确实帮助我找到了答案。在命令行中运行它让我注意到了我在 IDE 中忽略的内容。

标签: java maven jar intellij-idea dependencies


【解决方案1】:

您可以执行以下操作:

<dependency>
    <groupId>toolbox</groupId>
    <artifactId>toolbox</artifactId>
    <version>1.0</version>
    <type>test-jar</type>
    <scope>test</scope>
</dependency>

为我工作:)

【讨论】:

    【解决方案2】:

    我不得不将我的类从 test/java 移动到 main/java。傻,但我花了一整天才意识到这一点。这仅在通过 IDE 更新“maven 选项”中的存储库后才有效。

    【讨论】:

    • 正在导入的类或正在导入的类?
    猜你喜欢
    • 2021-03-19
    • 2015-02-19
    • 2018-11-03
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    • 2023-03-30
    相关资源
    最近更新 更多