【问题标题】:strange Ant build failure奇怪的 Ant 构建失败
【发布时间】:2011-01-12 13:28:24
【问题描述】:

我在运行ant compile 时收到此错误:

[javac] Compiling 9 source files to /home/wena/work/workspace/PortalMapper/build/classes
[javac] /home/wena/work/workspace/PortalMapper/src/foo/esb/portal/service/PortalRequestBroker.java:439: cannot find symbol
[javac] symbol  : method setLeadId(java.lang.String)
[javac] location: class foo.crmservice.DepositRequest
[javac]             depositReq.setLeadId(portalDepRequest.getLeadId());
[javac]                       ^
[javac] 1 error

这是我的 ant 构建文件的 sn-p:

<target name="compile">
    <javac srcdir="${dir.java}" destdir="${dir.classes}">
        <classpath refid="classpath"/>
    </javac>
</target>

depositReq 是我们拥有的类的一个实例:

private String leadId;
public void setLeadId(String leadId) {
    this.leadId = leadId;
}

portalDepRequest 是我们拥有的类的一个实例:

private String leadId;
public String getLeadId() {
    return leadId;
}

备注

  • 该项目在 Eclipse 上不显示错误。
  • 我在 Debian 上使用 sun-java6-jdk(如果重要的话)

【问题讨论】:

  • 什么是classpath.mule?你也洗干净了吗?
  • @navi 这只是类路径 ID 的名称。
  • 你能在课堂上发布 setLeadId() 的声明吗?它抱怨的是方法而不是整个班级。参数可能不匹配?
  • portalDepRequest.getLeadId() 返回什么?
  • Ups,对不起,这从错误消息中很明显。消息是说 DepositRequest 类没有一个名为 setLeadId() 的方法,它采用 String 参数,所以我会仔细检查。为什么只有在使用 ant 时才会显示错误,我不知道。不同的库/路径/编译器选项?

标签: java ant build


【解决方案1】:

如果已编译源代码的依赖项不在类路径上,则在使用 javac 时会出现 cannot find symbol 错误。在您的情况下,这似乎是 foo.crmservice.DepositRequest 类。

既然它是在 Eclipse 中编译的,那么你有没有明确地将这个类包含在一个引用的库中?或者也许通过链接另一个项目?

【讨论】:

  • foo.crmservice.DepositRequest 是同一个项目的一部分(我正在构建的地方)。所以没有必要包含它。
  • 是否在${dir.java}指定的目录下?
猜你喜欢
  • 1970-01-01
  • 2019-03-04
  • 2016-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
  • 2019-06-15
相关资源
最近更新 更多