2015-09-14 37 views
0

我想在Java/Maven項目中使用Google的Android支持註釋庫(http://tools.android.com/tech-docs/support-annotations)提供的一些有用的註釋。 我希望在編譯時使用mvn或Eclipse在不使用Android Studio的情況下驗證註釋。 這可能嗎?使用Maven或Eclipse(無需Android Studio)使用和檢查Android支持註釋

我我pom.xml我把以下內容:

<dependency> 
     <groupId>com.android.support</groupId> 
     <artifactId>support-annotations</artifactId> 
     <version>23.0.0</version> 
     <scope>provided</scope> 
    </dependency> 

我目前不使用android-maven-plugin,因爲它只是一個簡單的罐子它不依賴於其他Android庫。聲明依賴關係允許我在我的代碼中使用註釋。例如:

import android.support.annotation.CallSuper; 
import android.support.annotation.NonNull; 

public class TestAnnot 
{ 

    @CallSuper 
    public void blah() { } 

    public void bleh(@NotNull String str) { } 

} 

這個編譯在Eclipse和通過mvn罰款。但是,明顯違反註釋規則的行爲也不會被標記。例如,沒有什麼是目前阻止我這樣做的:

public class SubTestAnnot 
{ 
    @Overrides 
    public void blah() 
    { 
     // not calling super.blah() even though I should 
     bleh(null); // calling bleh(String) with null even though that's not allowed 
    } 

} 

我看了一下說,庫的源代碼(在<Android SDK path>/extras/android/m2repository/com/android/support/support-annotations/23.0.0看),但現在看來,這只是聲明瞭自己的註釋,但不有代碼來驗證它們。所以我假設Google已經單獨實現了這一點,也許在SDK組件之一中?

那麼,有沒有人知道我如何配置Maven和/或eclipse來實際檢查這些註釋?

+0

Android Studio將會出現無法調用超級的下劃線方法,但實際上沒有任何操作會阻止編譯並且應用程序仍在運行。 – CoatedMoose

回答

1

here下「實施集註」

當你使用過Android Studio和IntelliJ,IDE將標誌調用你在哪裏傳遞錯誤的類型參數的與這些註解方法。

從Gradle插件的1.3.0-beta1版本開始,安裝了Android M Preview平臺工具後,這些檢查也通過「lint」gradle任務在命令行上檢查/強制執行。如果您想將問題標記爲持續集成服務器的一部分,這非常有用。注意:這並不包含無效註釋。本文檔中的所有其他註釋均由lint進行檢查。)