0

我已经在我的一个 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 会在外部 repo 中查找,该模块是项目本身的一部分。我一定不太了解maven,抱歉。在我的 EJB 中,我需要在 elBLImpl 模块中创建类的实例。

4

2 回答 2

1

只是猜测,因为我们需要更多信息,但是您是否安装了父工件以供查找?

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

于 2013-11-01T23:40:40.627 回答
1

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

于 2013-11-01T23:52:53.633 回答