Maven聚合模块用作批量依赖

时间:2013-01-10 12:48:42

标签: java maven dependency-management

是否可以使用聚合模块(将模块聚合用于构建目的的pom)作为依赖项,将其模块作为依赖项传递?考虑到它必须声明与其子模块对应的那些依赖项,否则如果将其声明为依赖项,则它没有自己的依赖项,因此不包含传递deps。

我已经尝试了但是我遇到了循环依赖错误。

否则我将不得不创建一个额外的模块(比如my_module_deps)来声明所有这些依赖项,因此我可以将它用作可传递地包含其依赖项的依赖项。我不喜欢没有任何特定目的的maven模块,除非是依赖批量。

这是所需的状态,因此我可以将它用于模块聚合和用于获取其传递依赖性的依赖项:

<project>
    <artifactId>aggregationModule</artifactId>
    <modules>
        <module>a</module>
        <module>b</module>
        <module>c</module>
    </modules>
    <dependencies>
        <dependency>
            <artifactId>a</artifactId>
        </dependency>
        <dependency>
            <artifactId>b</artifactId>
        </dependency>
        <dependency>
            <artifactId>c</artifactId>
        </dependency>
    </dependencies>
</project>

2 个答案:

答案 0 :(得分:0)

是否有任何子模块将聚合项目定义为其父项? 如果是这样,这不起作用,因为作为父项必须首先构建项目。 但是如果父级本身同时将模块定义为依赖项,则必须首先构建模块,因此您创建了循环依赖性错误。

答案 1 :(得分:-1)

您无法声明对包装类型为“pom”的项目的依赖关系。如果这样做,maven将显示与向jar模块声明依赖关系时相同的错误,该模块在本地存储库中不存在且无法从存储库列表中下载。

也许提议的一些替代方案to this question可以帮助您。