【问题标题】:Use pom-packaging maven project as dependency使用 pom-packaging maven 项目作为依赖
【发布时间】:2017-02-23 06:28:05
【问题描述】:

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

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

<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>

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

<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>

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

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

【问题讨论】:

    标签: java maven pom.xml maven-dependency


    【解决方案1】:

    你的 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>
    

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

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

    【讨论】:

    • 谢谢,这行得通。虽然我认为应该有一些插件在部署时自动生成这样的聚合 pom。
    • 是的,应该有一个用于生成聚合 pom 的标志
    猜你喜欢
    • 2011-08-30
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 2022-12-06
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    相关资源
    最近更新 更多