<target name="get.svn.info">
<mkdir dir="${application.output.dir}"/>
<mkdir dir="${application.testoutput.dir}"/>
<mkdir dir="${application.dist.dir}"/>
<!-- Paste resource file with revision information -->
<exec executable="svn" output="${application.output.dir}/svninfo.xml">
<arg line="info"/>
<arg line="-r HEAD"/>
<arg line="--xml"/>
<!-- root project folder -->
<arg value="${application.basedir}"/>
</exec>
<xmlproperty file="${application.output.dir}/svninfo.xml" prefix="svn" keepRoot="no"/>
<delete file="${application.output.dir}/svninfo.xml"/>
</target>
В результате чего далее в коде Ant'а можно обращаться к следующим property'ям:
svn.entry(revision) - текущая ревизия проекта.
svn.commit.author - Пользователь, сделавший последний коммит в текущей ревизии.
svn.commit.date - Дата последнего коммита текущей ревизии.
и другим менее интересным значениям.
Позже можно просто положить эти значения в файл, который будет читаться программой, например так:
<echo file="${revision.number.file}"># Application revision information
revision=${svn.entry(revision)}
</echo>
Или запаковать программу, промаркеровав имя файла ревизией:
<zip destfile="${application.archive.dir}/${dist.filename}-r${svn.entry(revision)}.zip" level="9" compress="yes">
<fileset dir="${application.dist.dir}">
<include name="**/*"/>
</fileset>
</zip>
Комментариев нет:
Отправить комментарий