Плагин номера сборки Maven, как сохранить номер сборки в файле?

У меня есть проект Java, использующий Spring Framework и Git, и я хотел отобразить номер сборки. Я нашел плагин Build Number Maven . Для Git номер сборки - это хеш Git. Мне это не нравится, и я думал, что свидание было намного более выразительным.

Я нашел эту отличную статью в блоге , в которой объясняется, как использовать плагин номера сборки с другим профилем для SVN и Git. Поскольку я просто использую Git, вместо того, чтобы создавать новый профиль, я просто скопировал часть плагина в свой тег сборки.

Когда я запускаю «mvn package», он говорит мне:

[INFO] --- buildnumber-maven-plugin:1.0:create (default) @ sherd ---
[INFO] Storing buildNumber: 2011-08-04_21-48_stivlo at timestamp: 1312487296631

Что выглядит нормально, но мне интересно, где это хранится? «git status» не обнаруживает никаких новых файлов, и кажется, что его нет и в target / (target / находится в моем .gitignore).

Может быть, мне изменить конфигурацию, чтобы сохранить номер сборки в файле? Как я могу использовать значение номера сборки?


Благодаря подсказке Майкла-О я прочитал главу о фильтрации файлов ресурсов в Руководстве по началу работы с Maven . Я создал файл application.properties в src / main / resources / properties / application.properties со следующим содержанием:

# application properties
application.name=${pom.name}
application.version=${pom.version}
application.build=${buildNumber}

Я добавил следующий фрагмент XML в свой раздел сборки:


    
        src/main/resources/properties
        true
    

Теперь, когда я звоню из в командной строке «mvn package», этот файл свойств сохраняется в target / classes / properties / application.properties, например, со следующим содержимым:

# application properties
application.name=Sherd Control Panel
application.version=1.0.1-SNAPSHOT
application.build=2011-08-05_05-55_stivlo

Все работает нормально из командной строки, но, вздох, m2eclipse выдает ошибки сборки:

05/08/11 6.05.03 CEST: Build errors for obliquid-cp; 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal
org.codehaus.mojo:buildnumber-maven-plugin:1.0:create (default) on project 
sherd: Cannot get the branch information from the scm repository : 
Exception while executing SCM command.

По какой-то причине m2eclipse пытается подключиться к моему репозиторию, но не может, потому что это репозиторий Git, доступ к которому осуществляется с помощью SSH и закрытого ключа. Интересно, могу ли я сказать m2eclipse, чтобы он не подключался к Git.


После дополнительных поисков я обнаружил параметр revisionOnScmFailure, установил для него значение true, и теперь m2eclipse также работает. Для справки, вот полная конфигурация плагина maven buildnumber, который я использовал (он находится в pom.xml в разделе build / plugins).


    org.codehaus.mojo
    buildnumber-maven-plugin
    1.0
    
        
            generate-resources
            
                create
            
        
    
    
        false
        false
         true
        {0,date,yyyy-MM-dd_HH-mm}_{1}
        
            timestamp
            ${user.name}
        
    

20
задан Jean-Rémy Revy 26 September 2012 в 15:18
поделиться