2015-04-15 3 views
0

Есть ли способ сказать maven развернуть порядок ушных файлов?maven ear deploy order

У меня есть следующая структура проекта:

app 
|- pom.xml 
| 
|- commons (jar) 
| |-pom.xml 
| 
|- integration (pom) 
| |-pom.xm 
| | 
| ... 
| | 
| |-elasticsearch-search-service (pom) 
|  |-pom.xml 
|  | 
|  |-elasticsearch-search-service-bean (jar) 
|  | |-pom.xml 
|  | 
|  |-elasticsearch-search-service-ear (ear) 
|   |-pom.xml 
| 
|- services (pom) 
    |-pom.xml 
    | 
    |-search-service (jar) 
    | |-pom.xml 
    | 
    ... 
    | 
    |-restapi-web (war) 
    | |-pom.xml 
    | 
    |-services-ear(ear) 
     |-pom.xml 

commons.jar упакован под Lib папкой в ​​каждых ушах. The services.ear называет EJB услуги от elasticsearch-поиска сервис-bean.jar так elasticsearch-поиск-сервис-уха должны быть развернуты до того услуги уха.

Когда я бегу Maven, то он пытается развернуть услуги-уха в первый и, конечно, он терпит неудачу с Нет боба по имени elasticsearch-поиск-сервис-боб/SearchServiceBean определяется: не найден в JNDI среде.

Все работает нормально, когда я устанавливаю уши вручную в правильном порядке.

Я добавил зависимость в сервис-уха проекта, как это, но он не работает, и ухо не развертывается перед другими:

<dependency> 
    <groupId>...</groupId> 
    <artifactId>elasticsearch-search-service-bean</artifactId> 
    <version>...</version> 
    <scope>provided</scope> 
</dependency> 

Если я пытаюсь добавить elasticsearch-поиска -service ухо зависимости в сервисе уха проекта, чем для того, развертываний это хорошо, но я получаю это исключение:

причиненные: org.apache.maven.project.DependencyResolutionException : Не удалось разрешить зависимости для проекта ...: services-ear: ear: 1.0: Не удалось найти ...: elasticsearch-search-service- ухо: jar: 1.0 в http://repo.maven.apache.org/maven2 был кэширован в локальном репозитории, разрешение будет не повторная попытка, пока интервал обновления центрального не прошло и обновления вынуждены

Как я могу сказать, что мавенно начать развертывание elasticsearch-розыскного-сервис-ухо перед другими ушами?

ответ

1

Наконец-то я нашел решение.

Единственный способ рассказать maven о развертывании - определить зависимости между порами.

Так что, если я хочу, чтобы развернуть elasticsearch-розыскную-сервис-ухо перед тем услуги уха, чем мне нужно, чтобы добавить новую зависимость в услуг-уха.

<!-- elasticsearch-search-service.ear needs to be deployed before services.ear --> 
<dependency> 
    <groupId>...</groupId> 
    <artifactId>elasticsearch-search-service-ear</artifactId> 
    <version>...</version> 
    <type>pom</type> 
    <scope>provided</scope> 
</dependency> 

Две важные настройки здесь:

  • сфера должна быть «при условии», он предотвращает elasticsearch-поиск-сервис-уха библиотеки, которые будут добавлены в услуг уха ,
  • типа должен быть «П», чтобы избежать Неспособности найти ...: elasticsearch-поиск-сервис-ухо: баночку

Я надеюсь, что это помогает любому, кто находится в той же ситуации.