java - 由于 NoSuchMethodError : org. apache.tools.ant.types.resources.Resources.setCache(Z)V,Ant <junit> 任务在 Jenkins 上失败

标签 java jenkins ant configuration-management ant-junit

我正在使用 ant jenkins 插件在 1.7.1 版本的 Ant 上运行 ant 任务。由于以下错误,构建失败 -

BUILD FAILED
java.lang.NoSuchMethodError: org.apache.tools.ant.types.resources.Resources.setCache(Z)V
    at org.apache.tools.ant.taskdefs.optional.junit.BatchTest.<init>(BatchTest.java:57)
    at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.createBatchTest(JUnitTask.java:556)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.IntrospectionHelper$CreateNestedCreator.create(IntrospectionHelper.java:1252)
    at org.apache.tools.ant.IntrospectionHelper$Creator.create(IntrospectionHelper.java:1169)
    at org.apache.tools.ant.UnknownElement.handleChild(UnknownElement.java:550)
    at org.apache.tools.ant.UnknownElement.handleChildren(UnknownElement.java:346)
    at org.apache.tools.ant.UnknownElement.configure(UnknownElement.java:198)
    at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:160)
    at org.apache.tools.ant.Task.perform(Task.java:347)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
    at org.apache.tools.ant.Main.runBuild(Main.java:758)
    at org.apache.tools.ant.Main.startAnt(Main.java:217)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)

任务:

<target name="test" depends="compile-test" description="to run junits">
    <mkdir dir="${build.report}"/>

    <property name="junit.path" refid="junit.class.path"/>
    <!--<echo message="JUnit classpath ==> ${junit.path}"/>-->

    <junit printsummary="yes" fork="no" haltonerror="no" haltonfailure="no">
        <classpath refid="junit1.class.path"/>

        <formatter type="plain" usefile="false"/>
        <formatter type="xml"/>
        <batchtest todir="${build.report}">
            <fileset dir="${src.test}">
                <include name="**/Test*.java"/>
            </fileset>
        </batchtest>
    </junit>
</target>

使用相同的设置(包括 ant 版本),相同的任务在我的本地工作正常。有人可以告诉我这里可能的根本原因是什么吗?

最佳答案

我检查了Ant 1.7.1发行版,发现没有这样的方法可用。

org.apache.tools.ant.types.resources.Resources.setCache

虽然这很奇怪,但我在本地使用相同的发行版(ant-1.7.1)并且工作正常。我的系统上没有可用的其他发行版。那么它如何获取包含此方法的任何更高版本的引用呢?引入 ant 任务时是否会发生隐式依赖解析?

注意: Jenkins 服务器在不同的计算机上运行,​​并且指向该计算机上部署的相同版本的 ant 发行版。

关于java - 由于 NoSuchMethodError : org. apache.tools.ant.types.resources.Resources.setCache(Z)V,Ant <junit> 任务在 Jenkins 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48859971/

相关文章:

docker - 如何在 Docker 内的 Jenkins 中运行 Katalon 测试套件

java - Eclipse 中的 Ant 构建失败 : Unable to understand the error from console

javax.servlet.* 无法解析为类型

java - MyBatis - jdbcTypeForNull 甲骨文

java - Spring Boot方法验证

eclipse - 用ant构建eclipse项目

java Ant : specify which java installation should be used to run

java - BigDecimal 最佳编码比例

c# - 如何使用 sonar.cs.msbuild.testProjectPattern

svn - Jenkins 如何向 Subversion 用户发送电子邮件通知?