【问题标题】:How to depend a POM with several modules in Maven如何在 Maven 中依赖具有多个模块的 POM
【发布时间】:2017-02-19 14:39:58
【问题描述】:

我必须在我的项目 POM 中包含几个库,它们都是 siddhi-extensions 的子模块,就像在这个 POM 中一样:

http://maven.wso2.org/nexus/content/repositories/releases/org/wso2/siddhi/siddhi-extensions/3.0.3/siddhi-extensions-3.0.3.pom

添加这个依赖如下说:

Missing artifact org.wso2.siddhi:siddhi-extensions:jar:3.0.3.


<dependencies>  
    <dependency>
        <groupId>org.wso2.siddhi</groupId>
        <artifactId>siddhi-extensions</artifactId>
        <version>3.0.3</version>
    </dependency>
</dependencies>

使用dependencyManagement 不会包含一行中的所有子模块:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.wso2.siddhi</groupId>
            <artifactId>siddhi-extensions</artifactId>
            <version>${siddhi.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

我可以简单地导入siddhi-extensions 来导入siddhi-extensions 项目中的所有子模块库吗?

【问题讨论】:

    标签: maven dependencies dependency-management


    【解决方案1】:

    org.wso2.siddhi:siddhi-extensions:3.0.3:pom 不包含&lt;dependencyManagement&gt;

    虽然我无法在 Introduction to the Dependency Mechanism, Importing Dependencies 中明确找到此内容,但似乎 &lt;scope&gt;import 并未涵盖继承的 &lt;dependencyManagement&gt;(来自父级 org.wso2.siddhi:siddhi:3.0.3:pom)。

    因此,您项目中的 &lt;dependencyManagement&gt; 将被忽略(您的构建输出中是否没有适当的消息?)因此依赖项org.wso2.siddhi:siddhi-extensions:3.0.3 的打包类型默认为不存在的 jar

    但是,文档说:

    导入在用于定义相关工件的“库”时最为有效,这些工件通常是多项目构建的一部分。一个项目使用这些库中的一个或多个工件是相当普遍的。 [...] 下面的模式说明了如何创建“材料清单”(BOM) 以供其他项目使用。

    项目的根是 BOM pom [siddhi:siddhi:pom 在您的情况下]。它定义了将在库中创建的所有工件的版本。其他希望使用该库的项目应将此 pom 导入其 pom 的 dependencyManagement 部分。

    [...]

    父子项目将 BOM pom 作为其父项。这是一个普通的多项目 pom。 [你的siddhi:siddhi-extensions:pom]

    解决方案:

    • 在项目的&lt;dependencyManagement&gt;/&lt;dependency&gt; 中导入org.wso2.siddhi:siddhi:3.0.3:pom
    • 为您需要的siddhi-extension-... 模块添加&lt;dependencyManagement&gt;/&lt;dependency&gt; 声明。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多