Java Cobertura ant脚本缺少Log4J类

Java Cobertura ant脚本缺少Log4J类,java,ant,build-process,code-coverage,cobertura,Java,Ant,Build Process,Code Coverage,Cobertura,我试图在我的ant脚本中运行Cobertura,但一开始就被卡住了。当我尝试插入cobertura taskdef时,我丢失了Log4J库 Ant属性和类路径 在${cobertura.dir}中有一个lib目录,其中包含所有文件。我将其从cobertura发行版ZIP直接解压缩到该目录中 我漏了一步吗?到目前为止,我的配置有问题吗?我刚升级到最新的cobertura,我的工作正常。是否有可能在类路径上使用了不同版本的log4j,因此选择了错误的版本?转到ant/lib目录,确保那里没有文件co

我试图在我的ant脚本中运行Cobertura,但一开始就被卡住了。当我尝试插入cobertura taskdef时,我丢失了Log4J库

Ant属性和类路径 在${cobertura.dir}中有一个lib目录,其中包含所有文件。我将其从cobertura发行版ZIP直接解压缩到该目录中


我漏了一步吗?到目前为止,我的配置有问题吗?

我刚升级到最新的cobertura,我的工作正常。是否有可能在类路径上使用了不同版本的log4j,因此选择了错误的版本?

转到ant/lib目录,确保那里没有文件cobertura.jar。如果存在,请将其删除并重试。

我今天也遇到了这个问题,并通过将所有必需库的位置指定为taskDef任务提供的类路径的一部分来解决它

<path id="cobertura.class.path">
    <pathelement location="${common.dir}/../tools/cobertura/cobertura.jar" />
    <pathelement location="${common.dir}/../tools/cobertura/lib/asm-3.0.jar" />
    <pathelement location="${common.dir}/../tools/cobertura/lib/asm-tree-3.0.jar" />
    <pathelement location="${common.dir}/../tools/cobertura/lib/log4j-1.2.9.jar" />
    <pathelement location="${common.dir}/../tools/cobertura/lib/jakarta-oro-2.0.8.jar" />
</path>

<taskdef classpathref="cobertura.class.path" resource="tasks.properties" />


确保taskdef和cobertura工具中使用的类路径相同。这也帮助我解决了同样的问题。

我也遇到了这个问题,我只是在类路径中添加了cobertura提供的所有JAR来解决这个问题


希望这有帮助

嗯,我只是尝试在我的Eclipse之外构建它,使用手动设置的类路径,它就可以工作了。我必须检查Eclipse对我的类路径做了什么…:-(
<!-- ================================= 
      target: cobertura              
     ================================= -->
<target name="cobertura" depends="clean, init" description="Generates cobertura coverage reports">
    <cobertura-instrument todir="${dir.build.instrumented}">
        <fileset dir="${dir.build}">
            <include name="**/*.class" />
        </fileset>
    </cobertura-instrument>
</target>
BUILD FAILED
build.xml:95: java.lang.NoClassDefFoundError: org/apache/log4j/Logger
<path id="cobertura.class.path">
    <pathelement location="${common.dir}/../tools/cobertura/cobertura.jar" />
    <pathelement location="${common.dir}/../tools/cobertura/lib/asm-3.0.jar" />
    <pathelement location="${common.dir}/../tools/cobertura/lib/asm-tree-3.0.jar" />
    <pathelement location="${common.dir}/../tools/cobertura/lib/log4j-1.2.9.jar" />
    <pathelement location="${common.dir}/../tools/cobertura/lib/jakarta-oro-2.0.8.jar" />
</path>

<taskdef classpathref="cobertura.class.path" resource="tasks.properties" />