Подтвердить что ты не робот

Как поместить версию проекта maven в манифест файла войны?

Мне нужно, чтобы Maven вставлял номер версии из файла POM в манифест, расположенный в файле WAR в /WEB -INF/manifest.mf.

Как мне это сделать? Я смог легко загрузить документацию для этого в JAR файле, используя maven-jar-plugin, но это не работает в WAR файле.

Спасибо за помощь!

4b9b3361

Ответ 1

Подумал об этом, используя плагин maven-war. См. Конфигурацию ниже:

<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-war-plugin</artifactId>
     <version>2.1.1</version>
     <configuration>
         <archive>
             <manifestEntries>
                 <version>${project.version}</version>
             </manifestEntries>
         </archive>
     </configuration>
</plugin>

Ответ 2

Или вы можете использовать флаги addDefaultImplementationEntries или addDefaultSpecificationEntries, которые добавят несколько записей, включая свойство project.version.

addDefaultImplementationEntries

Implementation-Title: ${project.name}
Implementation-Version: ${project.version}
Implementation-Vendor-Id: ${project.groupId}
Implementation-Vendor: ${project.organization.name}
Implementation-URL: ${project.url}

addDefaultSpecificationEntries

Specification-Title: ${project.name}
Specification-Version: ${project.version}
Specification-Vendor: ${project.organization.name}

Значение по умолчанию для обоих значений равно false. Если свойство не определено (например, project.organization.name), то эта строка будет исключена из манифеста.

Это может войти в конфигурацию maven-war-plugin следующим образом:

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <archive>
            <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
            </manifest>
        </archive>
    </configuration>
</plugin>

Ответ 3

Поместите ${project.version} в ваш manifest.mf, где вы хотите, чтобы была версия. Чтобы это работало, я считаю, что вам нужен плагин ресурсов, чтобы manven "отфильтровал" ресурсы, поскольку они включены в ваш файл войны.