当我运行ant test时,一切都很酷,但是当Travis运行相同的命令时,
$ ant检验
构建文件: /home/travis/build/AwesomeTeamPlayer/event-receiver/build.xml 汇编: mkdir创建dir: /home/travis/build/AwesomeTeamPlayer/event-receiver/build javac /home/travis/build/AwesomeTeamPlayer/event-receiver/build.xml:28: 警告:“includeantruntime”未设置,默认为build.sysclasspath=last;对于可重复构建,javac将12个源文件编译为/home/travis/build/AwesomeTeamPlayer/event-receiver/src/EventReceiver/EventsCollection.java,注意:/home/travis/build/AwesomeTeamPlayer/event-receiver/src/EventReceiver/EventsCollection.java使用未检查或不安全的操作。javac :使用-Xlint:unchecked重新编译以了解详细信息。 测试-编译: mkdir创建了dir: /home/travis/build/AwesomeTeamPlayer/event-receiver/build/test javac将3个源文件编译成/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。 这看起来像是Ant的可选组件之一。操作:检查添加在带有-a参数的命令行中的-/usr/share/ant/lib -/home/travis/.ant/lib目录中是否存在适当的可选JAR 不要惊慌,这是一个常见的问题。 最常见的原因是一个丢失的罐子。 这不是错误,而是配置问题。
当我在ant test文件中将ant test -lib ./lib/junit-4.12.jar更改为ant test -lib ./lib/junit-4.12.jar时,我会得到相同的错误消息:/
.travis.yml
language: java
jdk:
- oraclejdk8
services:
- docker
script: ant test -lib ./lib/junit-4.12.jarbuild.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 dir中
发布于 2017-08-19 09:39:06
我知道该怎么做了。我加了
before_script:
- sudo apt-get install ant-optional这解决了我的问题;)
发布于 2019-12-06 05:04:17
正如在https://docs.travis-ci.com/user/installing-dependencies/上提到的
要安装不包含在标准的精确、可靠、异种或仿生发行版中的Ubuntu包,请在您的
before_install步骤中使用apt。
这意味着将以下内容添加到.travis.yml文件中:
before_install:
- sudo apt-get install ant-optionalhttps://stackoverflow.com/questions/45769731
复制相似问题