【问题标题】:Ant classpath OrderAnt 类路径顺序
【发布时间】:2010-10-30 16:46:09
【问题描述】:

如何在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 版本,因此请不要建议将其作为解决方案,除非它是唯一可能的解决方案。

【问题讨论】:

    标签: java ant classpath


    【解决方案1】:

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

    您始终可以使用ant -v 来获取 Ant 构建的详细输出。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        我在使用 Google Web 工具包和 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。我在接受的答案中尝试了引导类路径,但它不起作用。

        【讨论】:

          猜你喜欢
          • 2011-06-13
          • 1970-01-01
          • 2010-10-22
          • 1970-01-01
          • 2010-10-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多