无法从Maven依赖项目中找到类

4
[CLOSED - 我必须将类从test/java移动到main/java并通过IDE“maven选项”更新maven仓库]
我对maven和java开发不熟悉。 我使用IntelliJ Idea作为IDE。 我正在使用Maven 3.0.4。
我创建了一个“项目A”和一个“项目B”,每个项目都有一些类。 现在,当我尝试在项目A中创建对项目B中类的依赖性时,我似乎找不到任何属于项目B的类。 当我检查maven仓库时,可以看到基于项目B创建了一个.jar文件。
澄清一下:添加对项目B的依赖性时,我能够找到名称为“项目B”的构件,但是我无法找到任何属于项目B的类。
看起来我无法访问和使用项目B中的任何类,这使得这个安装程序毫无用处。
请告诉我您需要哪些信息以帮助我解决这个问题。
[EDIT] 这是项目A的pom,其中包含对项目B的依赖关系。 但是我要么不理解如何在我的项目中使用它,要么它不起作用。 虽然我可以使用IntelliJ的功能找到并添加构件,但是IntelliJ似乎找不到项目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>

1
至少包括相关部分(例如,构件信息和 A 对 B 的依赖关系)。您如何添加这个依赖项。当您说“找不到项目 B 的任何类时”的含义是什么。 - Dave Newton
A对B的依赖在pom中还不存在。这就是我试图实现的内容。IntelliJ有一个添加依赖项并按artifact或class搜索的功能。这就是我所说的“找不到属于项目B的任何类”的意思。 - user8363
只需添加依赖项;我不知道它是如何进行类搜索的,请查看文档。 - Dave Newton
1
当你在命令行上执行 mvn clean install 命令时,它会输出什么信息? - ftr
执行mvn clean install帮助我解决了问题。它成功了,但似乎我忽略了一个警告,即没有类需要编译,而且jar文件为空。问题是我把我的类放在test/java而不是main/java中。更新仓库后,我能够找到项目B的类并使其正常工作。这很傻,但确实帮助我找到了答案。在命令行中运行它只是让我注意到了我在IDE中忽略的东西。 - user8363
投票关闭,因为这似乎是OP想要的。 - Stephen C
2个回答

6

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


被导入的类还是导入类的类? - John Deverall

1
您可以执行以下操作:
<dependency>
    <groupId>toolbox</groupId>
    <artifactId>toolbox</artifactId>
    <version>1.0</version>
    <type>test-jar</type>
    <scope>test</scope>
</dependency>

对我来说没问题 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接