我已经在我的一个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模块中创建类的实例。
答案 0 :(得分:1)
只是因为我们需要更多信息而猜测,但您是否安装了此工件的父工件才能找到?
此外,您没有指定Maven应该查找特定依赖项的位置。您只需定义所有存储库位置,Maven就会查看所有存储库位置,包括.m2
中的Maven本地存储库,以尝试查找它们。
答案 1 :(得分:1)
Maven不关心你如何形成你的项目结构。在构建工件之后,它将它放到本地存储库中。并且每个项目(嵌套或非嵌套)只能从该存储库获取任何其他项目(如果没有定义其他存储库)。因此,如果您在获取某些工件时遇到问题,但是构建它 - 请检查该工件<parent>
,<artifactId>
和<version>
是否与您定义为依赖项相同。