【问题标题】:Can't find class from other Maven module when in package - IntelliJ在包中时无法从其他 Maven 模块中找到类 - IntelliJ
【发布时间】:2016-12-28 02:06:27
【问题描述】:

我在这个问题上苦苦挣扎了一段时间,我在 IntelliJ 中有一个带有 2 个 maven 模块的 maven 项目。

当我在我的第二个模块的 java 文件夹(源根目录)中时,当我创建一个类时,我可以引用我的其他项目的类。但是当我在 java 文件夹中的包中时,我不再能够使用其他项目的类。

提前致谢,

图片链接: http://imgur.com/a/6wyYM

我来自父项目的 POM.xml:

<?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>
<packaging>pom</packaging>

<groupId>com.ucll.da</groupId>
<artifactId>project2</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>

<modules>
    <module>domain</module>
    <module>webApp</module>
    <module>rest</module>
</modules>

</project>

domain 和 rest 的 POM 文件基本相同:

<?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">

<parent>
    <artifactId>project2</artifactId>
    <groupId>com.ucll.da</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<artifactId>domain</artifactId>

</project>

【问题讨论】:

  • 图中显示了一个模块内不同包中的两个类。您是说包而不是模块吗?
  • 不,我有另一个 Maven 模块(称为“域”),它具有 ObservationService 类。在我的“rest”模块中,我只能在 java 文件夹中的类中使用 ObservationService,而不能在 java 文件夹下的包中使用。
  • 我建议您使用来自 pom.xml 和包结构的依赖项的相关 sn-ps 更新您的问题。
  • 请将代码粘贴到问题中,而不是先链接图像以及 pom.xml 中的错误日志和相关详细信息。

标签: java maven intellij-idea dependencies


【解决方案1】:

我找到了我的解决方案,但我真的不知道为什么它现在有效。

我在第一个 Maven 模块(域)中的 java 文件不在包中,只是在映射 Java 中。当我在这个 Java 映射中创建一个新包并将我的所有 java 文件移到那里时,我可以在其他 Maven 模块中使用这些类。

【讨论】:

  • 当您将类作为/src/main/java 的子级放置时,它们将成为未命名包的一部分。不鼓励使用未命名的包,请参阅此问题stackoverflow.com/q/7849421/6850448。您不能从命名包中导入未命名包中的类。
  • 感谢您的解释 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
  • 2016-03-29
  • 2011-08-27
  • 1970-01-01
相关资源
最近更新 更多