Если добавить следующее свойство в моем POM, то maven-war-plugin
использует его правильно:Maven войны-плагин игнорирует пользователя свойство war.warName
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Однако, если добавить следующее свойство плагин игнорирует его (генерироваться WAR имеет имя по умолчанию, т.е. артефакта-версия):
<properties>
<war.warName>${project.artifactId}</war.warName>
</properties>
Вот две выдержки из документации maven-war-plugin
:
warName:
- Название созданной WAR.
- Тип: java.lang.String
- Требуется: Да недвижимости
- Пользователь: war.warName
- Значение по умолчанию: $ {} project.build.finalName
failOnMissingWebXml:
- Независимо от того, следует ли сбой сборки, если файл web.xml отсутствует г. Установите значение false, если вы хотите, чтобы WAR была построена без файла web.xml. Это может быть полезно, если вы создаете оверлей, у которого нет файла web.xml.
- Тип: булево
- С: 2,1-альфа-2
- Обязательный: Нет
- Пользователь недвижимости: failOnMissingWebXml
- По умолчанию: истинно
(Источник: https://maven.apache.org/plugins/maven-war-plugin/war-mojo.html)
Почему поведение отличается от failOnMissingWebXml
и??
Кроме того, если другие плагины могут использовать значение ${project.build.sourceEncoding}
, почему не может maven-war-plugin
использовать значение $ {project.build.finalName}?
<properties>
<!-- plugins use these values correctly -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<failOnMissingWebXml>false</failOnMissingWebXml>
<!-- not "found" by maven-war-plugin -->
<war.warName>${project.artifactId}</war.warName>
<project.build.finalName>${project.artifactId}</project.build.finalName>
</properties>
Большое спасибо! :)
EDIT: Начиная с версии 2.4 из maven-war-plugin
war.warName работает как ожидалось, однако я до сих пор не понимаю, почему настройка project.build.finalName
не работает.
какая версия плагина войны maven вы используете? –
Ha! У меня ничего не было в, поэтому версия по умолчанию, используемая maven, равна 2.2. Я заставляю его использовать 2.6, а war.warName используется правильно ... Спасибо. Их документация должна быть обновлена, хотя ... –
nyg