Ant Deploy для Windows, сборка, манифест SVN - PullRequest
0 голосов
/ 13 декабря 2011

Я каждый, я использую Eclipse, Subclipse и ANT. Я хотел бы создать манифест сборки с файлами, которые были изменены, добавлены, обновлены, удалены из репозитория (с отдельными номерами версий в моей текущей системе).

    <propertyfile file="${dist.dir}\deploymentManifest.txt"
        comment="This file is automatically generated - DO NOT EDIT">        
        <entry key="buildtime" value="${builtat}"/>
        <entry key="build" value="${svnversion}"/>
        <entry key="version" value="${version}"/>
        <entry key="systemLocation" value="${directory/filename.ext}"/>
    </propertyfile>

Как очистить эту информацию от файлов в Eclipse? или как я могу использовать ЛЮБУЮ для получения этой информации?

Спасибо, Frank

1 Ответ

1 голос
/ 13 декабря 2011

Ну, ${buildtat} можно взять из задачи <tstamp> в Ant.Другие могут быть проанализированы путем выполнения svn log --xml и последующего использования полученного XML из задачи <xmlproperties>.Сверху головы (то есть без проверки ошибок):

<!-- Gets the Time Stamp -->
<tstamp>
  <format property="buildtat" pattern="MM/dd/yyyy HH:MM"/>
</tstamp>

<!-- Generates the revision information you need-->
<exec
   executable="svn"
   output="${svn.log.file}">
   <arg line="log --xml -rHEAD/>
</exec>

<!-- Reads that information into a Property -->

<xmlproperty file="${svn.log.file}"/>

<echo message="Subversion Rev: ${log.logentry{revision}}"/>

Однако я бы порекомендовал вам взглянуть на систему непрерывной сборки, такую ​​как Jenkins .Всякий раз, когда вы вносите изменения в свой репозиторий Subversion, Дженкинс получает изменения и автоматически создает новую сборку.Это не только позволяет вам убедиться, что ваши изменения не нарушают вашу сборку, но и Jenkins может выполнять и другие вещи, такие как запуск тестов JUnit.Затем Jenkins сохраняет вашу сборку и результаты ваших тестов, а также весь журнал сборки в удобной для доступа к HTML-странице.

Где Jenkins будет работать для вас, так это то, что Jenkins автоматически представляет такие вещи, как Subversion Revision, как частьпроцесса сборки.Вы можете получить Subversion Revision, номер сборки Jenkins, имя проекта Jenkins и многое другое в качестве переменных среды.Тогда вы можете сделать это:

<property env="env."/>

<propertyfile file="${dist.dir}\deploymentManifest.txt"
    comment="This file is automatically generated - DO NOT EDIT">        
    <entry key="buildtime" value="${env.BUILD_ID}"/>
    <entry key="build" value="${env.SVN_REVISION}"/>
    <entry key="version" value="${BUILD_NUMBER}"/>
    <entry key="systemLocation" value="${directory/filename.ext}"/>
</propertyfile>

Посмотрите на Дженкинса.Это довольно легко понять и использовать.

Вам потребуется около 5 минут для загрузки и, возможно, 10 минут для запуска системы Linux.Windows более сложна и может занять от 15 до 20 минут, чтобы начать работу.Сейчас вы можете запустить его на настольном компьютере и поэкспериментировать с ним.

Может потребоваться еще полчаса, чтобы понять, как настроить проект, который может автоматически создавать сборки всякий раз, когда кто-то делает коммит.

Jenkins - это веб-интерфейс, но поставляется с собственным легковесным механизмом веб-приложений.Все, что вам нужно, это Java 1.6, чтобы запустить его.(И если вы используете Eclipse, у вас уже должно быть это).

...