2010-02-08 4 views
35

У меня есть проект с 5 модулями в maven. Прямо сейчас, когда я делаю «mvn clean install», он генерирует ухо, содержащее две банки, одну войну и один sar из других модулей.Удаление номера версии из файла с Maven

Все имена файлов содержат версию, например, ProjectX-уха 2.0.0.ear, ProjectX-клиент-2.0.0.jar и т.д.

Мне нужно переименовать одну из банок и окончательное ухо, чтобы опустить версию в имени файла. Он должен выглядеть следующим образом:

projectx-ear.ear 
| 
+-- projectx-client.jar 
| 
+-- projectx-misc-2.0.0.jar 
| 
+-- projectx-sar-2.0.0.sar 
| 
\-- projectx-web-2.0.0.web 

Сейчас я использую следующие плагины для создания: Maven-компилятор-плагин и Maven-релиз-плагин

Что бы быть лучшим способом для достижения результатов, которых я ожидаю?

ответ

19

В вашем модуле уха, вы можете использовать либо project.build.finalName элемент или вы можете настроить maven-ear-plugin, который поддерживает finalName необязательный параметр , И чтобы настроить окончательное имя объединенной банки, вам необходимо определить jarModule и установить для нее свойство bundleFileName.

Конечная конфигурация может выглядеть примерно так, что (я покажу вам, как установить окончательное название уха в конфигурации плагина здесь):

<project> 
    [...] 
    <dependencies> 
    <dependency> 
     <groupId>yourgroupid</groupId> 
     <artifactId>projectx-client</artifactId> 
     <version>2.0.0</version><!-- not mandatory if inherited --> 
    </dependency> 
    [...] 
    </dependencies> 
    [...] 
    <build> 
    [...] 
    <plugins> 
     [...] 
     <plugin> 
     <artifactId>maven-ear-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
      <finalName>projectx-ear</finalName> 
      <modules> 
      <jarModule> 
       <groupId>yourgroupid</groupId> 
       <artifactId>projectx-client</artifactId> 
       <bundleFileName>anotherName.jar</bundleFileName> 
      </jarModule> 
      </modules> 
     </configuration> 
     </plugin> 
     [...] 
</project> 
+0

Спасибо, именно то, что мне нужно! – Bani

+2

На данный момент более поздние версии плагина (я использую 2.6) позволяют указать внутри '' a ' no-version', который удаляет номер версии ваших модулей (так что вы не обязательно определять каждый из них). Впрочем, имя уха не влияет на это. – SJuan76

82

Вы можете достичь этого, указав finalName свойство в вашем ПОМ, как это:

<build> 
    <finalName>${project.artifactId}</finalName> 
</build> 
+0

работает как шарм. Благодаря! –

+0

Из-за этого ответа одной строки мне нравится stackoverflow :) Спасибо! – lord5et