我正在维护一个旧的Java项目,该项目最初是用1.4编写的,现在正在迁移到Java 7环境。该项目使用 Ant。
构建时,我收到以下警告
warning: [options] bootstrap class path not set in conjunction with -source 1.4
我想我现在已经做了足够的阅读来理解这是因为我正在使用 Java 7 编译器来编译要在 1.4 中运行的代码。但是我不想要这个 - 我想使用 7 编译器来构建 7 代码。
使用ant -v
我看到参数-source 1.4
传递给javac命令,但我找不到它的来源。build.xml 使用的 build.properties 文件均不提供此参数。该项目使用一些 xmlbean 功能,并在 build.xml 中生成 xmlbean 目标时发出警告。
我还有其他一些正在经历类似过程的项目,这些项目在构建过程中不会发出警告。在这些项目中,Ant 不传递 -source 1.4。到 javac 他们没有使用 xmlbeans,所以我认为这个问题可能与此有关。
经过大量搜索,我决定将 1.4 rt.jar 放在类路径上并忘记它。然而,这并没有帮助。我首先将其包含在 xmlbeans 目标的类路径中,然后作为整个构建文件的"bootclashpath"属性.xml但没有乐趣。
构建.xml的相关部分如下所示
<target name="xmlbeans" depends="setup">
<xmlbean classgendir="${schema.compile.dir}" destfile="${dist.dir}/${schema.jar.file}" failonerror="true">
<fileset dir="${config.dir}">
<include name="**/*.xsd"/>
</fileset>
<classpath>
<pathelement location="${lib.dir}/xbean.jar"/>
<pathelement location="${lib.dir}/jsr173_1.0_api.jar"/>
</classpath>
</xmlbean>
</target>
<taskdef name="xmlbean" classname="org.apache.xmlbeans.impl.tool.XMLBean">
<classpath>
<pathelement location="${lib.dir}/xbean.jar"/>
<pathelement location="${lib.dir}/jsr173_1.0_api.jar"/>
</classpath>
</taskdef>
似乎 XmlBeans 是造成这种情况的原因。
从他们的安装说明:
"要求
在安装 XMLBean 之前,您需要安装 JDK 1.4 和 Ant。完成这些操作后,请继续执行以下步骤。
可能是一些内部的xmlbeans!? 检查他们的来源。
如果这是一个选项,请参阅另一个堆栈溢出发布以获取替代方案:
Java Xml Binding