Удаление версии из имени файла зависимостей Maven в файле war - PullRequest
1 голос
/ 05 марта 2012

Я застрял с проблемой, когда у меня есть несколько внешних зависимостей в Maven.

У меня есть сторонние библиотеки, которые вместе образуют выпуск продукта. Сторонний продукт не использует maven и не предоставляет файл pom, поэтому я застрял с набором связанных .jar-файлов, точная связь которых я не знаю, за исключением того, что они все принадлежат друг другу.

Скажите, у меня есть эти файлы:

  • mail.jar
  • pe.jar
  • xpp3-1.1.3.4.M.jar

Все они являются частью одной и той же «версии» продукта, скажем, версии 2.0. Когда я собираю этот проект с помощью maven, я попадаю в папку / target / MyProject и файл MyProject.war, файлы со следующими именами:

  • почта-2.0.jar
  • ре-2.0.jar
  • xpp3-1.1.3.4.M-2.0.jar

Как я могу сказать maven исключить эти теги версий во время сборки, чтобы я получил эти имена файлов в моей окончательной сборке?

  • mail.jar
  • pe.jar
  • xpp3-1.1.3.4.M.jar

Я посмотрел на maven-war-plugin: 2.2 ->, по умолчанию:

<outputFileNameMapping>${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}</outputFileNameMapping> -> Выдает ошибку: не удалось скопировать файл для артефакта [..]: неверный аргумент

Кроме того, моя версия ... <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>

... дает странные имена файлов:

com.foo.bar-${artifact.artifactId}.${artifact.extension} (без расширения, без перевода свойств)

Что я делаю не так?

Ответы [ 3 ]

2 голосов
/ 24 ноября 2015

Я даже позже, но пока нет правильного ответа ...

Когда вы создаете артефакт WAR и хотите, чтобы JAR-файлы зависимостей, которые попадают в target / $ {finalName} / WEB-INF / lib, не имели номера версии в имени файла, тогда вы можете использовать

<outputFileNameMapping>@{artifactId}@@{dashClassifier?}@.@{extension}@</outputFileNameMapping>

в конфигурации maven-war-plugin.

0 голосов
/ 04 октября 2013

Я опаздываю на вечеринку, но я верю, что вы хотите сделать это.

<build>
  <finalName>${project.artifactId}</finalName>
</build>
0 голосов
/ 05 марта 2012

Вы идете не в ту сторону. Разверните их в своем локальном экземпляре Nexus и объявите их как POM в качестве зависимости. Подсказка: XPP3 и mail.jar уже доступны в Maven Central. Не изобретайте велосипед.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...