+1 за $ {eclipse.home}. Теперь я могу писать сценарии build.xml, которые относительно связаны с плагинами Eclipse, а не с хакерским программированием или копированием библиотек в проект.

я есть build.xml, который позволяет мне запускать тесты junit. Вот соответствующая часть:

<path id="JUnit 4.libraryclasspath">
    <pathelement location="../../../../../eclipse/plugins/org.junit4_4.5.0.v20090824/junit.jar"/>
    <pathelement location="../../../../../eclipse/plugins/org.hamcrest.core_1.1.0.v20090501071000.jar"/>
</path>
<path id="MyProject.classpath">
    <pathelement location="bin"/>
    <path refid="JUnit 4.libraryclasspath"/>
</path>

<target name="run_unit_tests" depends="build">
        <mkdir dir="${junit.output.dir}"/>
        <junit printsummary="yes" haltonfailure="no">   
            <classpath refid="MyProject.classpath" />

            <formatter type="xml"/>
            <batchtest todir="${junit.output.dir}">
                    <fileset dir="${src}">
                            <include name="**/*Test*.java"/>
                    </fileset>
            </batchtest>
        </junit>
</target>

Если я заменю строку:

<pathelement location="../../../../../eclipse/plugins/org.junit4_4.5.0.v20090824/junit.jar"/>

с участием

<pathelement location="${eclipse.home}/plugins/org.junit4_4.5.0.v20090824/junit.jar"/>

Изменение нарушает путь к классам. Я получаю следующую ошибку:

<classpath> за<junit> должен включать junit.jar, если не в собственном пути к Ant

Насколько я понимаю, атрибут location должен иметь одинаковое значение в обоих случаях. Так в чем может быть причина?

Как побочный вопрос, этот файл сборки не будет работать в среде с другой версией junit (путь будет сломан). Можно ли добавить "общий" путь к junit.jar?

Ответы на вопрос(2)

Ваш ответ на вопрос