получите текущий svn пересмотр в веб-приложении

Ваша проблема в том, что код вашего класса ATM требует данных, которые задаются как глобальные переменные в самом классе. С точки зрения ООП, это плохая практика, и в вашем конкретном случае код просто не будет работать, поскольку переменные выходят за рамки основного (виртуального врача).

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

Наконец, вы создаете экземпляр банка под названием b1 для использования в классе, который не имеет смысла с точки зрения ООП. Измените b1 на self, чтобы вызывать такие функции, как self.function (одна правка заменяет b1.pinpasscheck () на self.pinpasscheck ()).

9
задан 2 revs 4 October 2008 в 21:33
поделиться

5 ответов

Существует несколько задач Ant, которые могут сделать это для Вас.

Задача SvnAnt из Тигра является самой старой.

Документация здесь - в особенности смотрят на info элемент, который выставляет число пересмотра репозитория Подверсии как свойство Ant, которое это называет rev. Можно записать это значение в файл ресурсов с помощью нормального Муравья substituion механизмы.

Кто-то также поднял подобную (более простую) задачу на хостинге кода Google - никогда не использовал его, хотя так не может прокомментировать.

Любой из них походит на самый опрятный путь ко мне, если у Вас уже есть Муравей в Вашей сборке.

3
ответ дан 4 December 2019 в 13:51
поделиться

Мы используем следующую задачу Ant для включения svn версии в атрибут в банке, наряду с версией других пакетов, которые используются

<target name="package" depends="compile" description="Package up the project as a jar">
<!-- Create the subversion version string -->
<exec executable="svnversion" failifexecutionfails="no" outputproperty="version">
  <arg value="."/> 
  <arg value="-n"/>
</exec>
<!-- Create the time stamp -->
<tstamp>
  <format property="timeAndDate" pattern="HH:mm d-MMMM-yyyy"/>
</tstamp>

<jar destfile="simfraserv.jar">
  <manifest>
    <attribute name="Built-By"                value="${user.name} on ${time.date}" />
    <attribute name="Implementation-Version"  value="${svn.version}" />
    <attribute name="Implementation-Java"     value="${java.vendor} ${java.version}" />
    <attribute name="Implementation-Build-OS" value="${os.name} ${os.arch} ${os.version}" />
    <attribute name="JVM-Version"             value="${common.sourcelevel}+" />        
  </manifest>
  <fileset dir="bin">
    <include name="**/*.class"/>
  </fileset>
  <fileset dir="src">
    <include name="**"/>
  </fileset>
</jar>
</target>

И затем можно получить доступ к нему в веб-приложении как это

String version = this.getClass().getPackage().getImplementationVersion();
6
ответ дан 4 December 2019 в 13:51
поделиться

Посмотрите этот поток.

Мой фаворит от того потока просто выводит $Id:$ в Вашем коде, где Вы хотите идентификатор пересмотра. SVN заполнит это с реальными данными, когда Вы сделаете экспорт.

1
ответ дан 4 December 2019 в 13:51
поделиться

При использовании окон, Вы могли бы посмотреть на SubWCRev.exe, который идет с черепахой.

Это дает текущий пересмотр репозитория и заменит $WCREV$ сказанным, Вы могли включать это в свой web.xml, как говорят, что параметрический усилитель контекста и затем получает его оттуда.

1
ответ дан 4 December 2019 в 13:51
поделиться

Прежде чем веб-приложение упаковывается, выполняется svn информация и перенаправляет вывод в некоторый файл в WEB-INF/classes. Когда веб-приложение запустит, проанализируйте этот файл и спрячьте его в контексте сервлета или некотором подобном месте. В нижнем колонтитуле каждой страницы отобразите эту версию - при использовании чего-то как Мозаики или SiteMesh это изменение должно быть сделано только в одном файле.

Пользователи знатока могут попробовать плагин знатока-buildnumber.

0
ответ дан 4 December 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: