Ant не создает tar-файлы - PullRequest
       31

Ant не создает tar-файлы

0 голосов
/ 21 июня 2011

У меня есть небольшой ant-скрипт, который должен создать 3 tar-файла.

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="."  >

    <property name="dcc-shell.dir" value="${basedir}"/>
    <property name="dcc-mdp.dir" value="${dcc-shell.dir}/eq-mo-drop-copy-converter-mdp"/>
    <property name="mdp-code.dir" value="${dcc-mdp.dir}/src/main/*"/>
    <property name="dcc-srv.dir" value="${dcc-shell.dir}/eq-mo-drop-copy-converter-server"/>
    <property name="srv-code.dir" value="${dcc-srv.dir}/src/main/*"/>
    <property name="dcc-trans.dir" value="${dcc-shell.dir}/eq-mo-drop-copy-converter-transformer"/>
    <property name="trans-code.dir" value="${dcc-trans.dir}/src/main/*"/>

    <target name="create MDP Tar">
        <tar destfile="${dcc-shell.dir}/mdp.tar"
            basedir="${dcc-mdp.dir}/**"
            excludes="${dcc-mdp.dir}/target/*"
        />
    </target>

    <target name="create Trans Tar">
        <tar destfile="${dcc-shell.dir}/trans.tar"
            basedir="${dcc-trans.dir}/**"
            excludes="${dcc-trans.dir}/target/*"
        />
    </target>

    <target name="create SRV Tar">
        <tar destfile="${dcc-shell.dir}/srv.tar"
            basedir="${dcc-srv.dir}/**"
            excludes="${dcc-srv.dir}/target/*"
        />
    </target>
</project>

Скрипт работает нормально:

    Buildfile: C:\eq-Drop-Copy\eq-mo-drop-copy-converter-shell\build.xml
BUILD SUCCESSFUL
Total time: 94 milliseconds

Однако в проекте не создаются файлы tar.Что-то для меня загадка

РЕДАКТИРОВАТЬ Я получил следующую ошибку!

    <target name="create MDP.Tar">
    <tar destfile="C:/eq-Drop-Copy/eq-mo-drop-copy-converter-shell/mdp.tar"
        basedir="C:/eq-Drop-Copy/eq-mo-drop-copy-converter-shell/eq-mo-drop-copy-converter-mdp/*"
        excludes="C:/eq-Drop-Copy/eq-mo-drop-copy-converter-shell/eq-mo-drop-copy-converter-mdp/target/*"
    />
</target>

Я изменил xml на абсолютные пути:

    <target name="create MDP.Tar">
    <tar destfile="C:/eq-Drop-Copy/eq-mo-drop-copy-converter-shell/mdp.tar"
        basedir="C:/eq-Drop-Copy/eq-mo-drop-copy-converter-shell/eq-mo-drop-copy-converter-mdp/*"
        excludes="C:/eq-Drop-Copy/eq-mo-drop-copy-converter-shell/eq-mo-drop-copy-converter-mdp/target/*"
    />
</target>

Однако все еще та же ошибка, что и в случае отсутствия baseir, файл компоновки содержится в нем.Basedir в пределах цели MDP указывает на абсолютный путь и tar все файлы в этом.почему это дает ошибку?

Ответы [ 2 ]

1 голос
/ 21 июня 2011

Скорее всего, вы назвали это без указания цели. Ваша распечатка не показывает выполненные цели tar. Попробуйте вызвать его с именем цели в качестве аргумента для ant. Тогда вы также обнаружите, что использование пробелов в именах целей может быть не очень хорошей идеей.

0 голосов
/ 21 июня 2011

Я исправил несколько ошибок:

  • basedir атрибут не должен содержать "*".Это автоматически сделает все дерево.
  • Цели не могут содержать пробелы
  • Вы, вероятно, не указали цели.Поэтому я просто добавил цель default create_all_tars и использовал <antcall> для вызова необходимых целей.

    <project basedir="." default="create_all_tars" >
        <property name="dcc-shell.dir"
            value="${basedir}"/>
        <property name="dcc-mdp.dir"
            value="${dcc-shell.dir}/eq-mo-drop-copy-converter-mdp"/>
        <property name="mdp-code.dir"
            value="${dcc-mdp.dir}/src/main/*"/>
        <property name="dcc-srv.dir"
            value="${dcc-shell.dir}/eq-mo-drop-copy-converter-server"/>
        <property name="srv-code.dir"
            value="${dcc-srv.dir}/src/main/*"/>
         <property name="dcc-trans.dir"
             value="${dcc-shell.dir}/eq-mo-drop-copy-converter-transformer"/>
         <property name="trans-code.dir"
             value="${dcc-trans.dir}/src/main/*"/>
    
        <target name="create_all_tars">
            <antcall target="create_MDP_Tar"/>
            <antcall target="create_Trans_Tar"/>
            <antcall target="create_SRV_tar"/>
        </target>
    
        <target name="create_MDP_Tar">
            <tar destfile="${dcc-shell.dir}/mdp.tar"
                basedir="${dcc-mdp.dir}"
                excludes="${dcc-mdp.dir}/target/**"/>
        </target>
    
        <target name="create_Trans_Tar">
            <tar destfile="${dcc-shell.dir}/trans.tar"
                basedir="${dcc-trans.dir}"
                excludes="${dcc-trans.dir}/target/**"/>
        </target>
    
        <target name="create_SRV_Tar">
            <tar destfile="${dcc-shell.dir}/srv.tar"
                basedir="${dcc-srv.dir}"
                excludes="${dcc-srv.dir}/target/**"/>
        </target>
    

Помогает ли это?

...