[英]How can I suppress javac warnings about deprecated api?
當我編譯時,javac輸出:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.`
我希望壓制這個警告。 嘗試-Xlint:none似乎沒有幫助。
從我在文檔中可以看出,您不能在命令行上執行此操作。
根據javac
文檔 ,-Xlint:none僅禁用“Java語言規范未強制要求”的警告。 似乎警告您使用已棄用的API由語言規范管理。
您最好的選擇是修復已棄用API的使用。 但是,一個選項是將@SuppressWarnings("deprecation")
注釋添加到使用不推薦使用的API的類或方法中。
兩種可能的方式:
@SuppressWarnings("deprecation")
谷歌搜索這個問題的其他人偶然發現了這個問題...
嘗試:-Xlint:-deprecation
它似乎適用於JDK 6 ......不確定其他人。
使用Java 6,@ Depreated注釋和comiler標志都不會對您有所幫助。 對我有用的唯一解決方案是在不推薦使用的方法上添加帶有@deprecated (小型大寫)標記的javadoc注釋 :
/**
* @deprecated overriding deprecated method
*/
@Override
public javax.xml.bind.Validator createValidator() throws JAXBException {...}
(該示例來自一個派生自JAXBContext的類。)
(我沒有導入已棄用的Validator類以避免對import語句發出警告。)
使用gradle時,您可以輕松配置它:
tasks.withType(JavaCompile) {
options.deprecation = false
}
(使用Gradle 2和Java 8測試)
如果它是一個核心Java API,幾乎可以肯定有一個替代品可以做你想要的。 使用該額外參數運行javac,然后查看已棄用方法的API並根據需要進行替換。
使用nowarn屬性見下文
例如
<javac srcdir="src"
destdir="build/classes" source="1.6"
target="1.6" debug="true" encoding="Cp1252"
nowarn="on">
默認情況下,nowarn屬性已關閉
@SuppressWarnings("deprecation")
不適用於我,而是我用過的
@SuppressWarnings("unchecked")
如果您在命令行中進行編譯,則可以使用grep
過濾消息,只過濾掉包含不需要內容的消息,例如grep -v deprecated
。 你可以用|
將輸出發送到grep,
your compile command | grep -v deprecated
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.