我必须在我的项目POM中包含几个库,这些库都是{P}中的siddhi-extensions
的子模块:
如下所示添加此依赖项:
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
项目中的所有子模块库吗?
答案 0 :(得分:0)
org.wso2.siddhi:siddhi-extensions:3.0.3:pom
不包含<dependencyManagement>
。
虽然我在Introduction to the Dependency Mechanism, Importing Dependencies明确地找不到此内容,但似乎继承<dependencyManagement>
(来自父org.wso2.siddhi:siddhi:3.0.3:pom
)并未被<scope>import
覆盖。
那么,项目中的<dependencyManagement>
会被忽略(构建的输出中是否没有相应的消息?)因此依赖项org.wso2.siddhi:siddhi-extensions:3.0.3
的打包类型默认为jar
不存在。
但是,该文件说:
当用于定义通常是多项目构建的一部分的相关工件的“库”时,导入最有效。一个项目使用这些库中的一个或多个工件是相当常见的。 [...]下面的模式说明了如何创建“物料清单”(BOM)以供其他项目使用。
项目的根目录是物料清单[
siddhi:siddhi:pom
]。它定义了将在库中创建的所有工件的版本。其他希望使用该库的项目应将此pom导入其pom的dependencyManagement部分。[...]
父子项目将BOM pom作为其父项。这是一个普通的多项目pom。 [您的
siddhi:siddhi-extensions:pom
]
解决方案:
<dependencyManagement>/<dependency>
或org.wso2.siddhi:siddhi:3.0.3:pom
<dependencyManagement>/<dependency>
模块添加siddhi-extension-...
声明。