Как получить номер ревизии из Subversion, используя Maven? - PullRequest
34 голосов
/ 17 марта 2009

Я хотел бы разместить номер ревизии на главной странице веб-приложения, как я могу это сделать, используя maven?

P.S. Вопрос состоит из двух частей: как получить номер редакции и как записать его в выбранный файл в проекте.

Ответы [ 4 ]

26 голосов
/ 26 марта 2009

Плагин maven номер сборки - это путь. Пример того, как использовать это здесь:

http://www.mojohaus.org/buildnumber-maven-plugin/usage.html

Вы могли бы использовать это вместе с плагином maven jar для печати номера коммита SVN на ваш манифест.

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

7 голосов
/ 20 ноября 2010

Если вы используете subversion, вы можете использовать этот плагин, чтобы сделать номер редакции SVN доступным как свойство maven

http://code.google.com/p/maven-svn-revision-number-plugin/

Я комбинирую это с плагином jar, чтобы добавить SVN-ревизию в файл MANIFEST.MF для наших jar-ов и war-ов.

4 голосов
/ 25 марта 2009

Если у вас есть приложение командной строки svn, вы можете использовать следующий код - мы используем его в наших проектах (слегка изменены)

<build>
  <plugins>
    <plugin>
      <artifactId>maven-antrun-plugin</artifactId>
      <executions>
        <execution>
          <phase>generate-resources</phase>
          <goals>
            <goal>run</goal>
          </goals>
          <configuration>
            <tasks>
              <mkdir dir="${project.build.directory}/generated-web-resources/svn"/>
              <exec dir="${basedir}" executable="svn"
                  failifexecutionfails="false"
                  output="${project.build.directory}/generated-web-resources/svn/svnver.jsp">
                <arg line="info"/>
              </exec>
            </tasks>
          </configuration>
        </execution>
      </executions>
    </plugin>
    <plugin>
      <artifactId>maven-war-plugin</artifactId>
      <configuration>
        <webResources>
          <resource>
            <directory>${project.build.directory}/generated-web-resources/svn</directory>
          </resource>
        </webResources>
        <warSourceExcludes>**/_svn/**</warSourceExcludes>
      </configuration>
    </plugin>
  </plugins>
</build>
1 голос
/ 17 марта 2009

Вы не говорите, какую платформу вы используете, и вы простите меня за то, что я не знаком с Maven. Я полагаю, что он может вызывать внешние программы, и вы знаете, как заставить это делать.

Если на платформе Unix вам следует использовать команду программы svnversion и направить ее вывод (который является номером версии указанного рабочего пути) в файл, который вы затем можете включить в свою веб-страницу по своему усмотрению ,

svnversion --help

показывает, что он может сделать подробно.

Если это Windows и вы используете клиент TortoiseSVN, то в комплекте есть отличная программа командной строки Windows, которая называется SubWCRev. Эта утилита раскроет макросы в текстовом файле, который вы предоставляете, с различными деталями используемого вами хранилища svn - вы можете контролировать формат вывода. Все очень удобно. Файл справки для этого здесь: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html

...