Как сделать так, чтобы Spring Boot включил файл манифеста в свою перепакованную WAR? - PullRequest
0 голосов
/ 23 января 2019

Я создаю приложение Spring Boot, используя spring-boot-starter-parent версию 2.1.0-RELEASE, и мне нужно создать развертываемый файл WAR, содержащий MANIFEST.MF в каталоге META-INF/.Я настроил плагин Maven WAR для включения манифеста в артефакт сборки:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <version>3.2.2</version>
  <configuration>
    <archive>
      <manifest>
        <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
      </manifest>
    </archive>
  </configuration>
</plugin>

Тем не менее, конечный артефакт сборки не включает файл манифеста.Я заметил, что Spring Boot выполняет переупаковку после того, как плагин Maven WAR сначала упаковал файл WAR:

[INFO] --- spring-boot-maven-plugin:2.1.0.RELEASE:repackage (repackage)

И действительно, файл artifact.war.original в каталоге target содержит манифест.

Как сделать так, чтобы Spring Boot включил манифест в окончательный файл WAR?

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Используйте spring-boot-maven-plugin для этого, как показано ниже.

<packaging>war</packaging>

<build>
    <outputDirectory>${basedir}/src/main/webapp/WEB-INF/classes</outputDirectory>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.1.2.RELEASE</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>com.yourMainClass</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>
0 голосов
/ 23 января 2019

Вам не нужно это в «перепакованном» WAR (по крайней мере, не там, где вы хотите, чтобы оно было), поскольку оно содержит пользовательские механизмы загрузки. Перепакованная WAR все еще может быть развернута

...