我正在eclipse中开发一个包含几个模块的maven项目。父pom.xml
声明所有子模块,每个子模块都包含一个pom.xml
,其中包含对父项的引用。一些子模块依赖于其他子模块,因此我将它们作为依赖项添加(m2e在搜索依赖项时找到它们)。但是,当我尝试使用jetty(mvn -pl submodule jetty:run
)在eclipse之外运行子模块时,我得到的错误是它缺少其他子模块。
换句话说,更详细:有父,子1和子2。 sub2取决于sub1。我添加了
<modules>
<module>sub1</module>
<module>sub2</module>
</modules>
父母的和
<parent>
<groupId>group</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
在sub1和sub2中,以及
<dependency>
<groupId>group.parent</groupId>
<artifactId>sub1</artifactId>
<version>0.0.1-SNAPSHOT</version>
</depdency>
在sub2。
当我跑步时:
mvn -pl sub2 jetty:run
我明白了:
[INFO] Failed to resolve artifact.
Missing:
----------
1) group.parent:sub1:jar:0.0.1-SNAPSHOT
如何让maven找到子模块依赖项?
答案 0 :(得分:2)
在子模块中运行Jetty之前,您是否尝试在父项目中运行mvn install
?这将在您的本地Maven存储库中安装您的jar,然后Maven将能够找到它们。
(或者我可能会严重误读你问题的复杂性,在这种情况下:请纠正我。)