Весенняя загрузка MANIFEST.MF в ServletContext имеет значение null

не могу найти причину такой проблемы. Мне нужно прочитать свойства файла MANIFEST.MF, и он всегда равен нулю. Это мой плагин maven-jar в pom.xml:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifestEntries>
                        <Project>ExternalBettingHistoryService</Project>
                        <Build>${buildVersion}</Build>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>

Вот класс, в котором я читаю манифест:

@Controller
public class StatusController
{
    @Autowired
    private ServletContext servletContext;

     public void readManifest() throws IOException
     {
        Properties manifest = new Properties();
        try (InputStream inputStream = servletContext.getResourceAsStream("/META-INF/MANIFEST.MF"))
        {
            manifest.load(inputStream);
        }
}

Этот код постоянно вызывает исключение NullPointerException, поскольку servletContext.getResourceAsStream("/META-INF/MANIFEST.MF") возвращает значение null.

Я создаю проект, просто используя пакет mvn. Это файл манифеста внутри .jar: [jar]/target/classes/META-INF/MANIFEST.MF. Этот файл действителен, существует и выглядит примерно так:

Manifest-Version: 1.0
Implementation-Title: sampleTitle
Implementation-Version: 0.0.1-SNAPSHOT
Build: DEV
Built-By: me
Implementation-Vendor-Id: com.sample.project
Project: ProjectName
Created-By: Apache Maven 3.5.0
Build-Jdk: 1.8.0_144
Implementation-URL: https://projects.spring.io/spring-boot/#/spring-bo
 ot-starter-parent/parent-pom/projectname

Я попытался запустить проект, используя:

  • весна-загрузка: запустить
  • Java -jar цель/my-jar.jar

В обоих случаях inputStream из servletContext.getResourceAsStream("/META-INF/MANIFEST.MF") имеет значение null.

Что может быть не так?


person Sviatlana    schedule 05.12.2018    source источник
comment
Зачем вам нужно загружать MANIFEST.MF? Как правило, это то, чего вы не должны делать, кроме того, это может быть недопустимое представление Properties.   -  person M. Deinum    schedule 05.12.2018
comment
@Arnaud META-INF/MANIFEST.MF без косой черты возвращает первый найденный манифест, то есть манифест автоконфигурации spring-boot, но не мой собственный..   -  person Sviatlana    schedule 05.12.2018
comment
Посмотрите, поможет ли этот вопрос: stackoverflow.com/questions/32293962/   -  person Arnaud    schedule 05.12.2018
comment
@Arnaud, спасибо, но никто не помог...   -  person Sviatlana    schedule 05.12.2018