2012-12-05 55 views
0

我有三个独立的项目(A,B和C)。可以Maven自动构建未找到的依赖项吗?

项目B和C依赖项目A生成的jar。

如果未找到依赖项,Maven是否有能力自动构建项目A?

到目前为止我发现的答案是指示制作其他2个项目模块(我认为这意味着存储库布局并将它们合并到项目A中)并创建父/子pom。

一个简单的“不”也是我的结论之一。

看来好像是我在B和C中创建项目A的模块,maven并不真的那么喜欢它。 Maven能否在构建时间内看到当前项目范围之外的项目?对不起,如果这有点罗嗦。

回答

1

如果A,B和C是普通容器项目的模块,则该方案工作正常。

从根的pom.xml:

<modules> 
<module>project-a</module> 
<module>project-b</module> 
<module>project-c</module> 
</modules> 

其中,“项目一”等都是父文件夹内的Maven项目文件夹的名称。

父项目必须有<packaging>pom</packaging>才能正常工作。

然后,您可以构建父项目,并按顺序构建所有子项,也可以使用其中一个高级Maven反应器标志。

例如mvn clean install -pl project-b将只生成项目B.

欲了解更多信息,请执行mvn --help并从Maven By Example书中阅读the multi modules chapter


但这个问题:

确实Mav​​en的具有自动构建一个项目的能力,如果 依赖没有找到?

......答案总是否定的。如果未找到依赖项,Maven会失败,但它永远不会决定要构建哪个项目。您负责哪些项目需要构建。

+0

我知道这个场景有效,我有这个场景的工作。我有的问题是,如果B和C不在普通容器中,那将如何工作? B和C在他们自己的独立容器中。 – ResourceReaper

+0

@JoshGooding这不是如何maven的作品。 Maven不会构建不在当前工作目录内的项目(或者通过模块中的相对路径引用) –

相关问题