Я строил файл сборки Ant, который работал должным образом в моем проекте eclipse, но не в нашей конфигурации автоматической сборки Jenkins. Я установил ant на свой компьютер и запустил сборку с консоли. Это сработало, но я понял, что он не использовал junit-4.10.jar в моем проекте lib, как я хотел, а junit.jar в ant lib. После переименования файлов junit.jar в моей ant lib сборка ant не сработала.
Таким образом, в основном проблема в нашей автоматической сборке Jenkins заключается в том, что в его собственном каталоге ant lib нет файла junit.jar. Могу ли я указать задачу junit для использования jar в моем проекте lib вместо того, что в ant lib?
РЕДАКТИРОВАТЬ: я изменил свой файл build.xml, и теперь он выглядит так, все еще не работает. Мой junit-4.10.jar находится в каталоге / war / WEB-INF / lib / test:
<project name="vlp" default="junit" basedir=".">
<tstamp />
<!-- ################# PROPERTIES ################ -->
<!-- directory properties -->
<!-- source -->
<property name="vlp.src" location="src" />
<property name="vlp.test" location="test" />
<!-- build -->
<property name="src.build" location="bin/src" />
<property name="test.build" location="bin/test" />
<!-- libraries -->
<property name="vlp.lib.dir" location="war/WEB-INF/lib" />
<property name="vlp.testlib.dir" location="war/WEB-INF/lib/test" />
<!-- compile classpath -->
<path id="compile.path">
<fileset dir="${vlp.lib.dir}" includes="*.jar" />
</path>
<!-- test classpath -->
<path id="test.path">
<fileset dir="${vlp.testlib.dir}" includes="*.jar" />
<path refid="compile.path" />
</path>
<!-- ############### CLEANING ################## -->
<!-- Cleaning old compile files -->
<target name="clean" description="Clean all the old build files.">
<delete dir="${src.build}" />
<delete dir="${dist}" />
</target>
<!-- ############## COMPILATION ############### -->
<!-- Compile source -->
<target name="src.compile" depends="clean" description="Compile the source code when everything has been cleaned.">
<mkdir dir="${src.build}" />
<javac encoding="utf-8" destdir="${src.build}" nowarn="true">
<src path="${vlp.src}" />
<classpath refid="compile.path" />
</javac>
</target>
<!-- Compile test -->
<target name="test.compile" depends="clean" description="Compile the source code when everything has been cleaned.">
<mkdir dir="${test.build}" />
<javac encoding="utf-8" destdir="${test.build}" nowarn="true">
<src path="${vlp.test}" />
<classpath>
<pathelement location="${src.build}" />
<path refid="test.path" />
</classpath>
</javac>
</target>
<!-- ########### RUNS JUNIT TEST ############ -->
<target name="junit" depends="src.compile,test.compile" description="Runs all the unit test in the application. Does not halt build if test are failed.">
<junit printsummary="on" haltonfailure="false" showoutput="true">
<formatter type="brief" usefile="false" />
<classpath>
<pathelement location="${test.build}" />
<path refid="test.path" />
</classpath>
<batchtest>
<fileset dir="${vlp.test}">
<include name="**/Test*.java" />
<exclude name="**/AllTests.java" />
</fileset>
</batchtest>
</junit>
</target>
</project>
РЕДАКТИРОВАТЬ: вопрос Simlar можно найти здесь с другим ответом, который работает хорошо. Обратите внимание, что установить на компьютере ant-junit намного проще, чем пытаться добавить его в свои библиотеки и все такое.