背景:
我有一个包含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下,则可以使用此功能)
任何人都可以让我知道是否可以一次从两个不同的层次构建模块吗?