使用 pom-packaging maven 项目作为依赖

Hao*_*Luo 6 java pom.xml maven maven-dependency

我正在咨询一个关于使用 pom 打包 Maven 项目作为另一个项目中的依赖项的问题。我尝试阅读maven的文档并在线搜索,但我发现很少有解决方案。

pom-packaging项目由多个jar打包的子模块组成,类似于:

<project ...>
    <groupId>the.pom.project</groupId>
    <artifactId>pom-project</artifactId>
    <version>1.0</version>
    <packaging>pom</packaging>

    <modules>
            <module>a-pom-module</module>
            <module>b-pom-module</module>
            <module>c-pom-module</module>
            <module>d-pom-module</module>
            <module>e-pom-module</module>
            <module>f-pom-module</module>
    </modules>
</project>
Run Code Online (Sandbox Code Playgroud)

另一个项目依赖于pom-project的子模块jar。我这样写:

<project ...>
    <groupId>the.another.project</groupId>
    <artifactId>another-project</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

    <dependencyManagement>
            <dependencies>
                    <dependency>
                            <groupId>the.pom.project</groupId>
                            <artifactId>pom-project</artifactId>
                            <version>1.0</version>
                            <type>pom</type>
                    </dependency>
            </dependencies>
    </dependencyManagement>
</project>
Run Code Online (Sandbox Code Playgroud)

我尝试将 pom 项目添加为依赖项,旨在将所有子模块 jar 添加到另一个项目的类路径中,但它似乎对我不起作用。

我不希望手动添加所有子模块作为依赖项。

rav*_*iru 5

你的pom导入方式不行。

您需要创建新的 pom 来聚合所需的依赖项,然后在项目中添加对该聚合 pom 的依赖项

创建聚合pom如下

<groupId>the.pom.project</groupId>
    <artifactId>aggregate-pom</artifactId>
    <version>1.0</version>
    <packaging>pom</packaging>

    <dependencies>
        <dependency>
            <groupId>the.pom.project</groupId>
            <artifactId>a-pom-module</artifactId>
            <version>1.0</version>
        </dependency>
        .
        .
        .
    <dependencies>
Run Code Online (Sandbox Code Playgroud)

然后在您的项目中使用以下依赖项

<dependency>
    <groupId>the.pom.project</groupId>
    <artifactId>aggregate-pom</artifactId>
    <version>1.0</version>
    <type>pom</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)