Maven在错误的位置寻找神器

时间:2013-11-01 23:33:23

标签: maven

我已经在我的一个EJB模块pom文件中为项目中的另一个模块声明了一个依赖项。

该项目的结构如下:

-- eS
|-- pom.xml
|-- eL
|   |-- pom.xml
|   |-- eLBO
|   |-- eLDAO
|   |-- eLBLImpl
|   |-- eLEJB
|   |   |-- pom.xml
|   |   `-- src
|   |       `-- main
|   |           |-- java
|   |           |   `-- eleague
|   |           |       `-- ejb
|   |           `-- resources
|   |               `-- META-INF
|   |                   |-- beans.xml
|   |                   |-- persistence.xml
|   |                   |-- (ejb-jar.xml)
|   |                   `-- (jboss-ejb3.xml)

elBLImpl打包为JAR,我需要更新elEJB目录中的pom.xml文件,以添加对elBLIMpl的依赖。我试过这个:

        <dependency>
        <groupId>${project.parent.groupId}</groupId>
        <artifactId>elBLImpl</artifactId>
        <version>${project.version}</version>
        <scope>provided</scope>
    </dependency>

Maven说它无法找到模块:

Failure to find eS.eL:elBLImpl:jar:1.0-SNAPSHOT in http://my-repo-location

为什么在repo中寻找elBLImpl,而不是在项目本身?

这部分是正确的:

 eS.eL:elBLImpl

这是elEJB所依赖的模块。但是为什么maven在外部回购中寻找,该模块是项目本身的一部分。我不能太了解maven,对不起。在我的EJB中,我需要在elBLImpl模块中创建类的实例。

2 个答案:

答案 0 :(得分:1)

只是因为我们需要更多信息而猜测,但您是否安装了此工件的父工件才能找到?

此外,您没有指定Maven应该查找特定依赖项的位置。您只需定义所有存储库位置,Maven就会查看所有存储库位置,包括.m2中的Maven本地存储库,以尝试查找它们。

答案 1 :(得分:1)

Maven不关心你如何形成你的项目结构。在构建工件之后,它将它放到本地存储库中。并且每个项目(嵌套或非嵌套)只能从该存储库获取任何其他项目(如果没有定义其他存储库)。因此,如果您在获取某些工件时遇到问题,但是构建它 - 请检查该工件<parent><artifactId><version>是否与您定义为依赖项相同。