Maven,包不存在

Tax*_*Noi 9 java intellij-idea maven

我有一个模块的pom文件是:

<groupId>com.mycompany.Common</groupId>
<artifactId>common</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>common module</name>
Run Code Online (Sandbox Code Playgroud)

在该工件('common')中,我有一个名为com.mycompany.common.objects的包.在使用包中,我的pom文件是:

 <dependency>
            <groupId>com.mycompany.Common</groupId>
            <artifactId>common</artifactId>
            <version>1.0-SNAPSHOT</version>
            <type>pom</type>
 </dependency>
Run Code Online (Sandbox Code Playgroud)

当我运行mvn install时,它总是抱怨:包com.mycompany.common.objects不存在.

我尝试在错误所在的类中进行显式导入:

import com.mycompany.common.objects
Run Code Online (Sandbox Code Playgroud)

没运气.我在IDE(IntelliJ)和命令行中都尝试过.任何的想法?谢谢

Adr*_*hum 9

从您的示例中,我们看不到包含com.mycompany.common.objects您正在使用的包的任何工件.

您正在添加依赖项com.mycompany.Common:common作为POM(并且您声明com.mycompany.Common的包装:也常见为POM).如果它实际上是包含您需要使用的包的JAR工件,packaging则从POM和依赖项中删除(这意味着使用默认值JAR).


Ona*_*ucu 8

使用 IntellijIDEA 时,生成的文件可能会导致此问题。写作

mvn idea:idea
Run Code Online (Sandbox Code Playgroud)

在 IntellijIDEA Maven 控制台上重置这些文件对我有用。另请参阅: intelliJ 中的包不存在错误


elo*_*one 5

对于那些为此而苦苦挣扎而又不熟悉java的人,请确保所述软件包存在于本地存储库中。Maven有一个本地存储库~/.m2,其中安装了软件包以供本地访问,因此即使您的依赖项软件包在项目中正确声明为依赖项pom.xml并在项目中编译并存在,如果它在本地存储库中不存在,mvn compile也会触发一个"package does not exist"错误。

要解决此问题:

在缺少的包文件夹中,执行以下操作:

mvn install //--> this will package and install your missing package in the local repo

然后在您要编译的项目中:

mvn compile // --> now that the missing package is in the local repo it should work