Maven:一次可以从不同的父级构建相互依赖的项目模块吗?

时间:2018-09-04 11:00:37

标签: maven build maven-2 maven-3 multi-module

背景

我有一个包含3个主要模块的项目,以及一个包含所有这些模块的Aggregater POM项目。 这个Aggregater项目还具有一个位于该存储库外部的父POM。

-Super Aggregater(Packaging->POM, Different workspace)
    -Aggregater(Packaging->POM, Same workspace)
        - API(Same workspace)
        - Implementation(Same workspace)
        - Utility(Same workspace)

Super Aggregater的依赖关系在3个依赖模块(API,Impl,Util)中全部使用,并且Utility项目在API和Impl项目中均用作依赖关系。到目前为止,一切都很好。

当前状态:

现在,Utility是Aggregater的子级,只是继承了Super Aggregater的依赖项。(这是错误的)。 这种结构在聚合器和实用程序之间创建了不必要的依赖关系,也阻止了实用程序在聚合器项目之外使用。 因此,我按照以下方式对其进行了重组。

-Super Aggregater(Packaging->POM, Different Workspace)
    -Aggregater(Packaging->POM, Same workspace)
        - API(Same workspace)
        - Implementation(Same workspace)

-Super Aggregater(Packaging->POM, Different Workspace)
        - Utility(Same workspace as aggregator)

有了这种结构,以后可以在需要时在聚合器之外使用实用程序。

问题:

尽管实用程序项目可以移动到聚合器工作空间之外,但是当前它仍位于同一工作空间中,因此我不必分别构建2个项目。 这就是问题所在。我的工作区中有3个模块,其中2个不同的父级应该一次完成构建。 聚合器的构建顺序如下

    -> Utility
    -> API (Uses Utility)
    -> Implementation (Uses Utility)

在构建此程序时,会先构建实用程序,但是无法使用API​​和Impl中的构建版本(如果实用程序在Aggregater下,则可以使用此功能)

任何人都可以让我知道是否可以一次从两个不同的层次构建模块吗?

0 个答案:

没有答案