当我跑ant test
时,一切都很酷,但是当特拉维斯运行相同的命令时我得到了
$ ant test
构建文件: /home/travis/build/AwesomeTeamPlayer/event-receiver/build.xml
编译:
[mkdir] Created dir: /home/travis/build/AwesomeTeamPlayer/event-receiver/build [javac] /home/travis/build/AwesomeTeamPlayer/event-receiver/build.xml:28:
警告:' includeantruntime'没有设定,默认为 build.sysclasspath =最后;对于可重复的构建,设置为false [javac]将12个源文件编译为/ home / travis / build / AwesomeTeamPlayer / event-receiver / build [javac]注:/home/travis/build/AwesomeTeamPlayer/event-receiver/src/EventReceiver/EventsCollection.java 使用未经检查或不安全的操作。 [javac]注意:使用-Xlint重新编译:取消选中以获取详细信息。
测试编译:
[mkdir] Created dir: /home/travis/build/AwesomeTeamPlayer/event-receiver/build/test [javac] Compiling 3 source files to /home/travis/build/AwesomeTeamPlayer/event-receiver/build/test
试验:
建立失败
/home/travis/build/AwesomeTeamPlayer/event-receiver/build.xml:42:
问题:无法创建任务或输入junit
原因:上课 找不到org.apache.tools.ant.taskdefs.optional.junit.JUnitTask。
This looks like one of Ant's optional components. Action: Check that the appropriate optional JAR exists in -/usr/share/ant/lib -/home/travis/.ant/lib -a directory added on the command line with the -lib argument
不要惊慌,这是一个常见的问题。
最常见的原因是缺少JAR。
这不是一个错误;这是一个配置问题
当我在.travis.yml文件中将ant test
更改为ant test -lib ./lib/junit-4.12.jar
时,我收到相同的错误消息:/
.travis.yml :
language: java
jdk:
- oraclejdk8
services:
- docker
script: ant test -lib ./lib/junit-4.12.jar
的build.xml :
<?xml version="1.0" encoding="iso-8859-2"?>
<project name="Project name" basedir="." default="compile">
<property name="src.dir" value="./src"/>
<property name="build.dir" value="./build"/>
<property name="lib.dir" value="./lib"/>
<property name="test.dir" value="./tests"/>
<property name="test.build.dir" value="./build/test"/>
<path id="classpath.compile">
<pathelement location="${lib.dir}/amqp-client-4.0.2.jar"/>
<pathelement location="${lib.dir}/json-20170516.jar"/>
<pathelement location="${lib.dir}/slf4j-api-1.7.25.jar"/>
<pathelement location="${lib.dir}/slf4j-simple-1.7.25.jar"/>
<pathelement location="${build.dir}"/>
</path>
<path id="classpath.test">
<pathelement location="${lib.dir}/mockito-all-1.10.19.jar"/>
<pathelement location="${lib.dir}/junit-4.12.jar"/>
<pathelement location="${lib.dir}/hamcrest-core-1.3.jar"/>
<pathelement location="${build.dir}"/>
</path>
<target name="compile" depends="">
<delete dir="${build.dir}" />
<mkdir dir="${build.dir}"/>
<javac srcdir="${src.dir}" destdir="${build.dir}">
<classpath refid="classpath.compile"/>
</javac>
</target>
<target name="test-compile" depends="compile">
<mkdir dir="${test.build.dir}"/>
<javac srcdir="${test.dir}" destdir="${test.build.dir}" includeantruntime="false">
<classpath refid="classpath.test"/>
<classpath refid="classpath.compile"/>
</javac>
</target>
<target name="test" depends="test-compile">
<junit printsummary="on" haltonfailure="yes" fork="true">
<classpath>
<path refid="classpath.test"/>
<path refid="classpath.compile"/>
<pathelement location="${test.build.dir}"/>
</classpath>
<formatter type="brief" usefile="false" />
<batchtest>
<fileset dir="${test.dir}" includes="**/*Test.java" />
</batchtest>
</junit>
</target>
<target name="test-integration" depends="test-compile">
<junit printsummary="on" haltonfailure="yes" fork="true">
<classpath>
<path refid="classpath.test"/>
<path refid="classpath.compile"/>
<pathelement location="${test.build.dir}"/>
</classpath>
<formatter type="brief" usefile="false" />
<batchtest>
<fileset dir="${test.dir}" includes="integration/**/*Test.java" />
</batchtest>
</junit>
</target>
</project>
在 lib 目录中我有
答案 0 :(得分:0)
我弄清楚要做什么。我添加了
before_script:
- sudo apt-get install ant-optional
这解决了我的问题;)
答案 1 :(得分:0)
如https://docs.travis-ci.com/user/installing-dependencies/所述:
要安装标准中未包含的Ubuntu软件包 精确,可靠,亲密或仿生分布,请在
graph
的{{1}}步骤。
这意味着将以下内容添加到您的 .travis.yml 文件中:
before_install