2016-05-27 2 views
5

В проекте maven с исходным кодом Git, возможно ли это, когда я компилирую сборку с maven, чтобы прочитать последнюю фиксацию числа git и commit.Прочитать последнюю фиксацию номера git и commit

Я хочу использовать этот номер фиксации, чтобы иметь возможность найти последнее сообщение.

ответ

5

Предполагается, что вы хотите прочитать эту информацию, а затем сохранить ее в файле свойств. основе https://github.com/ktoso/maven-git-commit-id-plugin#using-the-plugin:

pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <!-- snip other stuff... --> 
    <build> 
     <!-- GIT COMMIT ID PLUGIN CONFIGURATION --> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
       <includes> 
        <include>**/*.properties</include> 
       </includes> 
      </resource> 
     </resources> 

     <plugins> 
      <plugin> 
       <groupId>pl.project13.maven</groupId> 
       <artifactId>git-commit-id-plugin</artifactId> 
       <version>2.2.1</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>revision</goal> 
         </goals> 
        </execution> 
       </executions> 

       <configuration> 
        <commitIdGenerationMode>flat</commitIdGenerationMode> 
        <gitDescribe> 
         <skip>true</skip> 
        </gitDescribe> 
       </configuration> 

      </plugin> 
      <!-- END OF GIT COMMIT ID PLUGIN CONFIGURATION --> 

      <!-- other plugins --> 
     </plugins> 
    </build> 
</project> 

git.properties в/SRC/основные/ресурсы:

git.commit.id=${git.commit.id} 
3

Вы можете использовать maven-buildnumber-plugin, который поддерживает Git среди несколько других SCM-системы.

У него также есть дополнительная функция, связанная с генерированием уникального номера сборки, кроме того, что вы получаете только код ревизии/фиксации: выведите SCM-ветвь, добавьте отметки времени, используйте короткие хэши и т. Д.

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