My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
ExamplesRus  
MakeDirDiff может быть запущен в качестве ант-таска или утилиты командной строки
Featured, Phase-Requirements, Phase-Deploy, ант, джава, таск, директория, dir, файлы, make, diff, difference, отличия, сравнить, примеры
Updated Jun 15, 2010 by igor.kan...@gmail.com

Пример запуска утилиты ‘Make Directory Difference’

English: MakeDirDiff Run Examples

Описание ант-таска MakeDirDiff в Ант-скрипте

        <taskdef name="makeDirDiff" classname="org.grenader.makedirdiff.MakeDirDiff">
          <classpath>
            <pathelement location="./ant.jar"/>
            <pathelement location="./jsCssMin-1.0.jar"/>
            <pathelement location="./makeDirDiff-1.4.jar"/>
          </classpath>
        </taskdef>

Выполнение ант-таска примера из дистрибутива

Мы запустим и проанализируем ант-таск пример располеженный в файле build.xml в каждом makeDirDiff-bin-1.x.zip дистрибутиве.

  1. Загрузите архив makeDirDiff-bin-1.x.zip cо страницы Project Download.
  2. Распакуйте содержимое архива в некую директорию.
  3. Если вы не знакомы с запуском ант-тасков, просмотрите файл 'build.xml', он небольшой и прост для понимания, в противном случае, пропустите этот шаг.
  4. Зайдите в директорию и запустите ант-скрипт в системной консоли. Таск "example" установлен таском по умолчанию и простое выполнение команды "ant", приведет к его запуску.
  5. В результате вы увидите выходные данные и сообщение "BUILD SUCCESSFUL" (успешно собран). В таком случае наш пример MakeDirDiff работает хорошо. Этот таск-пример создает результирующую директорию и копирует туда все файлы из исходной директории. Также он сохраняет содержимое исходной директории в директорию-хранилище "previous".
  6. Если вы не увидели сообщения "BUILD SUCCESSFUL" (успешно собран), значит что-то пошло не так. Посмотрите главу "Исправление неполадок", чтобы определить тип проблемы.
  7. Вот и все! MakeDirDiff создал копии новых/обновленных файлов из исходной директории. Как вы понимаете при первом запуске директория-хранилище "previous" пуста и все файлы считаются новыми.
  8. Попробуем теперь взяться за более сложную задачу. Удалите результирующую директорию и запустите ант-команду снова. Вы увидете, что результирующая директория создана снова, но на этот раз она пуста. Это объясняется тем, что в нее попадают только новые или обновленные файлы из исходной директории (а мы ничего не меняли там).
  9. В заключение проведем эксперимент, показывающей основную функциональность MakeDirDiff. Добавим несколько файлов из директорий в исходную директорию и снова запустим ант-команду. Результирующая директория будет содержать все новые файлы и директории. Работает!

Запуск в качестве java-приложения

Параметры командной строки

MakeDirDiff требует три обязательных параметра:

  • <исходная директория данных>
  • <результирующая директория>
  • < директория-хранилище "previous" >
и необзятельные флаги. Местополжение флагов в строке выхова значения не имеет.
  • -cleanDestDir. Этот флаг заставляет программу очистить результурующую директорию перед началом работы.

Обратите внимание, что MakeDirDiff без параметров или с неправильным числом параметров будет выдавать текст подсказки.

Примеры вызова для MS Windows

java -cp *; org.grenader.makedirdiff.MakeDirDiff ./original ./result ./previous 

Флаг -cleanDestDir может быть добавлен в вызов. Флаг -cleanDestDir заставляет программу очистить результурующую директорию перед началом работы.

Вы можете найти эту команду в файле makeDirDiff-Example.bat в архиве makeDirDiff-bin-1.x.zip

Примеры вызова для Unix

java -cp *: org.grenader.makedirdiff.MakeDirDiff ./original ./result ./previous 

Флаг -cleanDestDir может быть добавлен в вызов. Флаг -cleanDestDir заставляет программу очистить результурующую директорию перед началом работы.

Вы сможете найти эту команду в файле makeDirDiff-Example.sh в архиве makeDirDiff-bin-1.x.zip

Текст ант-таска примера

Нижеприведенный ант-таск пример расположен в файле build.xml в каждом makeDirDiff-bin-1.x.zip дистрибутиве

 <!--   Основной пример использования ант-таска makeDirDiff   -->
    <target name="example">
        <!--  Определяет требуемые jar'ы  -->
        <path id="taskDependencies">
            <pathelement location="./ant.jar"/>
            <pathelement location="./jsCssMin-1.0.jar"/>
            <pathelement location="./makeDirDiff-1.4.jar"/>
        </path>

        <!--  Описывает ант-таск  -->
        <taskdef name="makeDirDiff" classname="org.grenader.makedirdiff.MakeDirDiff">
            <classpath refid="taskDependencies"/>
        </taskdef>

        <!--
        Выполните таск makeDirDiff
          "./original" - исходная директория данных. Задана как вложенный элемент fileset (набор файлов)
          "./result" - результирующая директория. Задана как destDir атрибут
          "./previous" - директория-хранилище "previuos". Задана как prevDir атрибут
          "cleanDestDir - true/false, необязательный атрибут. Если атрибут установлен в                     
                          true, то результирующая директория будет очищена перед там как   
                          makeDirDiff начнет копировать туда новые или измененые файлы.
        -->
        <makeDirDiff
                destDir="./result"
                prevDir="./previous">
            <fileset dir="./original"/>
        </makeDirDiff>
    </target>

Посмотрите на другие примеры вызова другие примеры вызова MakeDirDiff как ант-таска


Sign in to add a comment
Powered by Google Project Hosting