我在維護一個最初由1.4編寫的舊Java項目,現在正在遷移到Java 7環境。該項目使用Ant。試圖找到Ant的javac-source 1.4參數來自
建設當我收到以下警告
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不通過源1.4。到javac他們沒有使用xmlbeans,所以我想也許這個問題可能與此有關。
經過大量的搜索之後,我決定將1.4 rt.jar放在classpath中,並忘記它。然而這並沒有幫助。我首先將它包含在xmlbeans目標的類路徑中,然後作爲整個build.xml文件的'bootclashpath'屬性,但沒有喜悅。
build.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的會影響使用Ant通過編譯器參數?我甚至不知道包含的jar會如何與構建管理器進行溝通 – tomfumb
請參閱http://grepcode.com/file/repo1.maven.org/maven2/org.apache.xmlbeans/xmlbeans/2.4。 0/org/apache/xmlbeans/impl/tool/XMLBean.java - 第264行也會在第782行註釋=「生成與給定版本兼容的Java源代碼,目前僅支持」1.4「或」1.5「是默認的。「 – Rebse
好吧,我仍然不明白這兩個人如何溝通,但它看起來很可能是問題!謝謝。現在我需要弄清楚是否可以使用rt.jar來刪除警告 – tomfumb