2017-02-19 24 views
1

Я должен включать несколько LIBS в мой проекте POM, которые все суб-модули siddhi-extensions как в этом POM:Как зависеть POM с несколькими модулями в Maven

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 импортировать все суб-модуль в LIBS проекте siddhi-extensions?

ответ

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 в секцию dependencyManagement их pom.

[...]

Родитель подпроект имеет ПОМ BOM в качестве родителя. Это обычный мультипроект pom. [ваших siddhi:siddhi-extensions:pom]

Решение:

  • Импорт org.wso2.siddhi:siddhi:3.0.3:pom в вашем проект <dependencyManagement>/<dependency> или
  • добавить <dependencyManagement>/<dependency> объявления для siddhi-extension-... модулей вам нужно.