Ваша проблема в том, что код вашего класса ATM требует данных, которые задаются как глобальные переменные в самом классе. С точки зрения ООП, это плохая практика, и в вашем конкретном случае код просто не будет работать, поскольку переменные выходят за рамки основного (виртуального врача).
Либо переместите эти переменные в сам класс (что все еще является плохой практикой), либо оставьте их в другом месте, импортируйте матрицу данных при вызове класса и передайте ее каждой отдельной функции.
Наконец, вы создаете экземпляр банка под названием b1 для использования в классе, который не имеет смысла с точки зрения ООП. Измените b1 на self, чтобы вызывать такие функции, как self.function (одна правка заменяет b1.pinpasscheck () на self.pinpasscheck ()).
Существует несколько задач Ant, которые могут сделать это для Вас.
Задача SvnAnt из Тигра является самой старой.
Документация здесь - в особенности смотрят на info
элемент, который выставляет число пересмотра репозитория Подверсии как свойство Ant, которое это называет rev
. Можно записать это значение в файл ресурсов с помощью нормального Муравья substituion механизмы.
Кто-то также поднял подобную (более простую) задачу на хостинге кода Google - никогда не использовал его, хотя так не может прокомментировать.
Любой из них походит на самый опрятный путь ко мне, если у Вас уже есть Муравей в Вашей сборке.
Мы используем следующую задачу 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();
Посмотрите этот поток.
Мой фаворит от того потока просто выводит $Id:$
в Вашем коде, где Вы хотите идентификатор пересмотра. SVN заполнит это с реальными данными, когда Вы сделаете экспорт.
При использовании окон, Вы могли бы посмотреть на SubWCRev.exe, который идет с черепахой.
Это дает текущий пересмотр репозитория и заменит $WCREV$ сказанным, Вы могли включать это в свой web.xml, как говорят, что параметрический усилитель контекста и затем получает его оттуда.
Прежде чем веб-приложение упаковывается, выполняется svn информация и перенаправляет вывод в некоторый файл в WEB-INF/classes. Когда веб-приложение запустит, проанализируйте этот файл и спрячьте его в контексте сервлета или некотором подобном месте. В нижнем колонтитуле каждой страницы отобразите эту версию - при использовании чего-то как Мозаики или SiteMesh это изменение должно быть сделано только в одном файле.
Пользователи знатока могут попробовать плагин знатока-buildnumber.