【问题标题】:Ant fails to build:"Compile failed; see the compiler error output for details."Ant 构建失败:“编译失败;有关详细信息,请参阅编译器错误输出。”
【发布时间】:2013-02-14 11:49:06
【问题描述】:

我和这两个问题有同样的问题:

我检测到是哪一行代码导致了这个问题。

org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui proxyControlGui =
                    new org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui();

此字符串用于:

package org.apache.jmeter;

public class JMeter implements JMeterPlugin {

ProxyControlGUI

package org.apache.jmeter.protocol.http.proxy.gui;
public class ProxyControlGui extends LogicControllerGui implements JMeterGUIComponent, ActionListener, ItemListener, KeyListener, UnsharedComponent

如果我评论这个字符串 - 构建成功。
在 IDE 中开发时编译器不会报错。

我需要知道:

  • 这种行为的原因是什么?
  • 在哪里查看包含详细信息的日志(我是 ant 新手)?
  • 如何重写代码以避免javac错误?

在 CL 中运行 ant 的日志:

    Buildfile: D:\src\apache-jmeter-custom\build.xml
compile-core:
    [javac] Compiling 1 source file to D:\src\apache-jmeter-custom\build\core
    [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6
    [javac] D:\src\apache-jmeter-custom\src\core\org\apache\jmeter\JMeter.java:360: error: package org.apache.jmeter.protocol.http.proxy.gui does not exist
    [javac]                 org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui proxyControlGui =
    [javac]                                                          ^
    [javac] D:\src\apache-jmeter-custom\src\core\org\apache\jmeter\JMeter.java:361: error: package org.apache.jmeter.protocol.http.proxy.gui does not exist
    [javac]                         new org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui();
    [javac]                                                                      ^
    [javac] 2 errors
    [javac] 1 warning

来自 IDEA 的蚂蚁日志:

Compiling 1 source file to D:\src\apache-jmeter-custom\build\core
: [options] bootstrap class path not set in conjunction with -source 1.6
D:\src\apache-jmeter-custom\src\core\org\apache\jmeter\JMeter.java (360:58)error: package org.apache.jmeter.protocol.http.proxy.gui does not exist
D:\src\apache-jmeter-custom\src\core\org\apache\jmeter\JMeter.java (361:70)error: package org.apache.jmeter.protocol.http.proxy.gui does not exist
2 errors
1 warning

提前致谢。

【问题讨论】:

  • 你有没有检查你的组件的ivy.xml,看是否包含了相应的jar?
  • 仅作记录:您使用的是什么 ide,您是从命令行还是直接在 ide 中使用 ant?
  • Intellij IDEA 11.0;单独的 ant 1.8.4(我已经指定它在 IDEA 中使用)。我尝试从 CL 和 IDEA 运行构建。主要问题中提供了日志。

标签: java ant jmeter


【解决方案1】:

Ant 是一个构建工具,用于查找我们在 ivy.xml 中指定的依赖项 并在将依赖项加载到类路径后使用脚本编译源代码。如果在您的 ant 脚本期间出现编译器故障并且 IDE 没有显示错误,可能的原因是构建类所需的 jar 在 IDE 构建路径中可用,而不是在 Ant IVY.xml 中。

【讨论】:

  • 我没有 ivy.xml。如何使用?我正在根据自己的需要定制 JMeter 并使用公共资源,因此,我确信所有必要的依赖项都已下载,因为我能够从原始资源构建 JMeter。
  • 哎呀,对不起。我一看到蚂蚁就忽略了
  • 我不太清楚,这个 build.xml 在我更改代码之前就有效了。我想,我弄坏了一些东西,但是我应该去哪里找呢?