2015-12-29 3 views
8

Версия приложения, определенная в файле banner.txt, не отображается на консоли при запуске приложения. Она определяется в соответствии с docs of Spring BootВерсия приложения не отображается в Spring Boot banner.txt

${application.version} 

Проектом использует пружинный загрузочный стартер-родитель, как родительский П (Базовый проект установку с start.spring.io)

+0

Это работало отлично для меня. Я создал проект из start.spring.io. Затем я добавил файл src/main/resources/banner.txt с содержимым, ссылающимся на '$ {application.version}'. Затем я перепрограммировал './mvnw чистый пакет'. Затем я запускал java -jar target/demo-0.0.1-SNAPSHOT.jar'. Он напечатал «0.0.1-SNAPSHOT», как ожидалось. Если это не работает для вас, вы хотите предоставить более подробную информацию, например, возможно, файл banner.txt? –

+0

Хорошо, версия печатается, если я строю проект и запускаю его через java -jar. Но если я запустил приложение в своей IDE (IntelliJ IDEA), версия не будет напечатана. В чем проблема? – pas2al

ответ

13

Ok, версия должны быть распечатана, если я построить проект и запустить его через java -jar. Но если я запустил приложение в своей IDE (IntelliJ IDEA), версия не будет напечатана.

Согласно загрузки документации Spring на Customizing the Banner, значение ${application.version} берется из баночки манифеста.

Номер версии вашего заявления, указанный в MANIFEST.MF. Например, Version-Version: 1.0 печатается как 1.0.

При запуске из IDE это типично для выполнения для файлов классов, скомпилированных с помощью IDE. IDE обычно не проходит полный цикл построения всей банки с манифестом. Таким образом, во время выполнения MANIFEST.MF не используется для замены значения ${application.version}, и вы остаетесь с голым токеном.

Это не ошибка в коде, и вы уже видели, что он работает правильно при выполнении полной сборки jar. Если это действительно важно, чтобы исправить это, работая через среду IDE, вы можете подумать о настройке пользовательского шага сборки, который сначала пройдет через полную сборку флага и манифеста. Это, вероятно, слишком много. Баннер может быть проверен позже вне IDE, протестировав его с реальной версией сборника.

+1

Это не работает для меня даже при запуске jar-файла с java. Любая идея почему? У меня есть эта строка внутри моего файла banner.txt: 'Version $ {application.version}', который отображается точно так же в консоли –

+0

@AlirezaMirian, выполнили ли вы те же самые шаги для сборки и выполнения, которые я описал в своем комментарии на вопрос? Это отлично работает для меня. Если это по-прежнему не работает для вас, я боюсь, что у меня нет идей. В вашей среде должно быть что-то другое, но я не уверен, что. –

3

В моем случае я заглядываю в манифест, созданный плагином spring-boot-maven , и внутри не было версии реализации.

Чтобы добавить его, я добавляю плагин maven-jar-plugin в разделе build.plugins моего pom.xml.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>3.0.2</version> 
    <configuration> 
     <archive> 
       <manifestEntries> 
        <Implementation-Version>${project.version}</Implementation-Version> 
       </manifestEntries> 
     </archive> 
    </configuration> 
</plugin> 

После этого, как уже упомянуть, прежде чем я могу увидеть баннер с версией приложения только тогда, когда я делаю Java -jar ЕТ не с моим язя

 Смежные вопросы

  • Нет связанных вопросов^_^