Корректировка finalName в Maven: проблема и решение
Быстрый ответ
Чтобы изменить стандартное имя файла jar в Maven, добавьте в pom.xml
следующий тег <finalName>
:
<build>
<finalName>НовоеИмяФайла</finalName>
</build>
Замените НовоеИмяФайла
на желаемое имя. Не нужно добавлять суффикс .jar
— о его присутствии позаботится сам Maven.
Работа с Maven 3.x
Начиная с версии 3.0.0, Maven отлично поддерживает конфигурацию <finalName>
внутри тега <build>
. Однако обратите внимание: известные баги могут привести к непредсказуемым результатам, поэтому всегда проверяйте результаты сборки:
<build>
<finalName>Багобоб-${project.version}</finalName>
</build>
Совместимость со старыми версиями Maven
Если вы по-прежнему работаете со старыми версиями Maven, настройте maven-jar-plugin
для достижения нужного результата:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<finalName>Ностальгия-${project.version}</finalName>
</configuration>
</plugin>
</plugins>
</build>
Великое переключение: использование профилей Maven
Если вам приходится работать с различными конфигурациями, то профили Maven — это то, что вам нужно:
<profiles>
<profile>
<id>testing</id>
<build>
<finalName>Test-${project.version}</finalName>
</build>
</profile>
</profiles>
Активировать определённый профиль можно при запуске Maven с использованием параметра -Ptesting
.
Усиленный контроль: использование свойств Maven
Если вы стремитесь к большему контролю над процессом или управляете многомодульным проектом, воспользуйтесь свойствами Maven:
<properties>
<jar.finalName>Проект-${project.version}</jar.finalName>
</properties>
Чтобы изменить <finalName>
в командной строке, используйте параметр -Djar.finalName=CustomName
.
Проработка установки: плагин Maven Install
Плагин maven-install-plugin поможет вам настроить процесс установки артефактов:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<createChecksum>true</createChecksum>
</configuration>
</plugin>
Вы можете изменить расположение и метаданные артефакта с использованием <file>
или <pomFile>
.
Расширение возможностей: артефакты WAR и EAR
Для управления артефактами war и ear разработаны специальные плагины:
- maven-war-plugin: элемент
<outputFileNameMapping>
позволяет вам контролировать именование файлов. - maven-ear-plugin: с помощью
<fileNameMapping>
вы получите контроль над именами модулей.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<outputFileNameMapping>@{artifactId}@-@{version}@.@{extension}@</outputFileNameMapping>
</configuration>
</plugin>
Путеводитель по устранению неполадок
- Чувствительность к регистру: XML чувствителен к регистру, так что будьте внимательны при написании
<finalName>
. - Полная сборка: При появлении проблем возможно, вам следует начать с команды
mvn clean install
. - Разрешение конфликтов: Убедитесь, что ваши настройки или плагины не конфликтуют с
<finalName>
. - Исследование проблемы: Не забывайте, что многие вопросы можно разрешить, изучив документацию. Рекомендуем ознакомиться с официальными руководствами Maven.
Визуализация
Представьте окончательное имя вашего файла jar как уникальную этикетку на банке джема:
До изменения настроек в Maven: | Jar | Этикетка | | ----------- | ----------------- | | artifact-1 | project-version | | artifact-2 | project-version | | artifact-3 | project-version |
После внесения изменений:
<build>
<finalName>УникальныйJar-${project.version}</finalName>
</build>
Результат после изменения настроек: | Jar | Этикетка | | ----------- | ----------------------------- | | artifact-1 | УникальныйJar-1.0-SNAPSHOT | | artifact-2 | УникальныйJar-1.0-SNAPSHOT | | artifact-3 | УникальныйJar-1.0-SNAPSHOT |
Таким образом, каждый архив оформлен уникальной и узнаваемой меткой, что облегчает его идентификацию благодаря возможностям Maven. 😎
Чествование
Спасибо Маттью за его ценные замечания и обратную связь, а также за указание на возможные проблемы с использованием <finalName>
. Мы совершенствуемся благодаря помощи всего сообщества разработчиков!
Полезные материалы
- Maven – Введение в цикл сборки — детальное описание цикла сборки Maven.
- Как создать исполняемый JAR с зависимостями через Maven? – Stack Overflow — обзор решений для запуска JAR файла с использованием Maven, основанный на опыте сообщества.
- Maven – Справочник по POM — официальная документация по конфигурации файла POM.
- Как управлять профилями в Maven – DZone — подробное руководство по настройке сборок в Maven с использованием профилей.