Сняв номер версии из имени файла с Maven

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

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

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

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-компилятор-plugin и Maven-релиз-плагин

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

2 ответов


в модуле уха, вы можете использовать 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>

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

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