Использование первого не является по своей сути более безопасным, чем последнее, вам необходимо дезинформировать ввод, является ли он частью массива параметров или простой переменной. Поэтому я не вижу ничего плохого в использовании последней формы с $table
, если вы убедитесь, что содержание $table
безопасно (alphanum plus underscores?) Перед его использованием.
Плагин номера сборки знатока является способом пойти. Пример того, как использовать его, здесь:
http://www.mojohaus.org/buildnumber-maven-plugin/usage.html
Вы использовали бы, это вместе с плагином банки знатока для печати SVN передает число декларации.
Это - лучшее решение, чем использование файла, который содержит число фиксации SVN, потому что это добавляет больше подвижных частей, чем действительно необходимо.
Вы не говорите, какую платформу Вы используете, и Вы простите мне за то, что были незнакомы со знатоком. Я предполагаю, что это может вызвать внешние программы, и Вы знаете, как заставить его сделать это.
, Если на платформе Unix, необходимо использовать программу svnversion команда и передать ее вывод по каналу - который является номером версии определенного рабочего тракта - в файл, который можно тогда включить в веб-страницу, как Вы считаете целесообразным.
svnversion --help
шоу, что это может сделать подробно.
, Если это - Windows, и Вы используете клиент TortoiseSVN, тогда существует превосходная программа командной строки Windows, связанная им, назвал SubWCRev. Эта утилита развернет макросы в текстовом файле, который Вы предоставляете различные детали репозитория SVN, который Вы используете - Вы добираетесь для управления форматом вывода. Все очень удобные. Справочный файл для этого здесь: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html
Если у Вас есть 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>