2013-12-09 4 views
0

у меня есть на основе проекта EAR Maven, что его структура, как показано ниже:команда Maven для проекта уха

------ root 
    | 
    |--- EAR 
     | 
     |---- EJB (JAR) 
     | 
     |---- WEB (WAR) 

Я хочу сделать цель для него, что первый чистый все три EAR, EJB, WEB, модуль затем сначала установите EJB после установки WEB и в конце установите EAR из-за их зависимостей

Как мне это сделать только в одной командной строке в maven?

вот мой pom.xml для корня

<url>http://jboss.org/jbossas</url> 
<licenses> 
    <license> 
     <name>Apache License, Version 2.0</name> 
     <distribution>repo</distribution> 
     <url>http://www.apache.org/licenses/LICENSE-2.0.html</url> 
    </license> 
</licenses> 
<modules> 
    <module>ejb</module> 
    <module>web</module> 
    <module>ear</module> 
</modules> 

<properties> 
<dependencyManagement> 
    <dependencies> 

     <!-- Define the version of the EJB jar so that we don't need 
      to repeat ourselves in every module --> 
     <dependency> 
      <groupId>RHAMavenBased</groupId> 
      <artifactId>RHAMavenBased-ejb</artifactId> 
      <version>${project.version}</version> 
      <type>ejb</type> 
     </dependency> 

     <!-- Define the version of the WAR so that we don't need to repeat 
      ourselves in every module --> 
     <dependency> 
      <groupId>RHAMavenBased</groupId> 
      <artifactId>RHAMavenBased-web</artifactId> 
      <version>${project.version}</version> 
      <type>war</type> 
      <scope>compile</scope> 
     </dependency> 

ответ

1

Вам нужен Maven multi module project установки. Взгляните на этот урок here. Все, что вам нужно, это настраивается с помощью этой

Edit

Существует запись в вашем родительском ПОМ, как

<dependency> 
     <groupId>RHAMavenBased</groupId> 
     <artifactId>RHAMavenBased-ejb</artifactId> 
     <version>${project.version}</version> 
     <type>ejb</type> 
    </dependency> 

я не ошибаюсь, здесь $ {project.version} является версия родительский pom, который вы строите, и поскольку он указан в родительском помпе, эта зависимость истощается до всех подмодулей, что не является хорошей идеей в вашем случае, поскольку проект EJB будет иметь зависимость от самого себя (это плохой дизайн). В идеале модуль никогда не должен зависеть от самого себя. Поэтому наша первая проблема - избыточная зависимость в модулях. Во-вторых, поскольку это определено в родительском pom, и ${project.version} считывается из родительского pom, у нас могут быть несоответствия версии здесь или даже несинхронизированные банки в m2, target и на пути сборки.

+0

спасибо, но я сделал все это, проблема в том, что я не очищаю свой ejb или войну и не пытаюсь установить ухо, он использует старый ejb или войну, и он автоматически не устанавливает ejb и war, я вручную должен чистую войну, банку, установите их и после этого установите ухо, я хочу написать команду, которая делает все это. –

+0

Если это не работает, значит, у вас есть разные настройки. Можете ли вы опубликовать свой родительский pom.xml здесь в сообщении? Там, где вы добавили модули в pom.xml –

+0

, все работает, и все в порядке, но когда я хочу очистить или установить какой-либо модуль, я должен делать это один за другим с помощью мастера IDE, мне нужна командная строка, как показано ниже что я могу запустить его для выполнения всех заданий, которые мне нужны: например: mvn clean module jar, module war, module ear, install module jar, module war, module ear, но в правильном синтаксисе –

Смежные вопросы