7

如何在 ant 中设置类路径顺序?

具体来说,当我尝试运行我的 ant 构建时,我需要它在 jar (jaxws-api.jar) 中选择一个类,而不是在 jre 中选择同一个类。我目前正在将类路径设置为明确包含这些 jar,但它似乎仍然首先选择 jre。我正在寻找的是某种与“构建配置”菜单下的 Eclipse 中的 Order/Export 等效的类型。

编辑:我会更明确。我有一些使用 CXF 2.1.3 生成的类。他们调用 javax.xml.ws.Service#getPort(QName, Class, WebServiceFeature...)。我正在使用 Java 版本 1.6.02。该版本的该类中不存在此方法。但是,它确实存在于 jaxws 版本的类(以及更高版本的 JRE 类)中。当我尝试进行 ant 构建时,总是在 jaxws 版本之前首先选择 JRE 类。这使我的编译失败。如何修改我的类路径以将 JRE 放在最后?

我无法更改 JRE 版本,因此请不要建议将其作为修复,除非它是唯一可能的修复。

4

3 回答 3

8

看起来您需要使用JavacJava Ant 任务bootclasspath中的设置。

您可以随时ant -v获取 Ant 构建的详细输出。

于 2009-06-02T14:44:15.497 回答
3

ant 类路径中的罐子按照您声明它们的顺序放置。

于 2009-06-02T14:08:47.160 回答
3

我在使用 Google web toolkit 和 servlet 3.0 API 文件时遇到了同样的问题。我需要确保我的 servlet API jar 在 GWT 库 jar 之前。这是有效的方法:

<path id="classpath">
        <filelist>
            <file name="${build.input}/__lib__/servlet-api.jar"/>
        </filelist>
        <fileset dir="${build.input}/__lib__">
            <include name="*.jar" />
        </fileset>
        <fileset dir="${build.input}/WEB-INF/lib">
            <include name="*.jar" />
        </fileset>
    </path>

请注意,需要首先列出的 jar 在文件列表中首先列出,然后我可以从其他目录添加 jar。我在接受的答案中尝试了引导类路径,但它不起作用。

于 2012-12-07T23:12:54.733 回答