12

私たちの Android プロジェクトは、私たちが制御できないいくつかの外部プロジェクトに依存しています。したがって、カスタム lint.xml ファイルをセットアップして、無視ルールを追加できるようにしようとしています。開始シナリオとして、ActionBarSherlock から警告を削除しようとしました (Jake の違反はありません)。

<?xml version="1.0" encoding="UTF-8"?>
<lint>
  <issue id="FloatMath">
    <ignore path="app/target/classes/com/actionbarsherlock/*" />
  </issue>
  <issue id="DefaultLocale">
    <ignore path="app/target/classes/com/actionbarsherlock/*" />
  </issue>
  <issue id="ViewConstructor">
    <ignore path="app/target/classes/com/actionbarsherlock/*" />
  </issue>
</lint>

次のコマンドで

lint app --disable FloatMath,DefaultLocale,ViewConstructor --xml lint-result.xml

ただし、作成されたレポートにはまだ ABS からのメッセージが含まれていました。

コマンドを次のように変更した更新

lint --disable FloatMath,DefaultLocale,ViewConstructor --xml lint-result.xml app

Jenkins は何を無視しても同じレポートを生成しますが、コマンドラインで実行すると、無効にした後にリストされているすべての問題が無視されます。Mavenのような方法で物事を無視/除外する簡単な方法があればいいのに...

4

3 に答える 3

10

今ではそうすることが可能です:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <issue id="all">
        <ignore regexp="target/classes/com/actionbarsherlock/.*[.]class" />
    </issue>
</lint>
于 2014-09-08T18:17:16.407 に答える
8

もう一度自分の質問に答えます... lint.xml は次のようになり、ASB 4.2.0 に関する ActionBarSherlock レポートは無視されます

<?xml version="1.0" encoding="UTF-8"?>
<lint>
  <issue id="NewApi">
    <ignore path="target/classes/com/actionbarsherlock/internal/ActionBarSherlockNative.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/ActionBarSherlockNative$ActionModeWrapper.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/app/ActionBarWrapper.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/app/ActionBarWrapper$TabWrapper.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/view/ActionProviderWrapper.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/view/menu/ActionMenuItemView.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/view/menu/MenuItemWrapper.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/view/menu/ActionMenuPresenter$HasPermanentMenuKey.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/IcsAdapterView.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/IcsProgressBar.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/ActionBarView$HomeView.class" />
    <ignore path="target/classes/com/actionbarsherlock/widget/SearchView.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/nineoldandroids/widget/NineFrameLayout.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/nineoldandroids/widget/NineHorizontalScrollView.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/nineoldandroids/widget/NineLinearLayout.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/nineoldandroids/view/NineViewGroup.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/view/menu/BaseMenuPresenter.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/AbsActionBarView.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/ActionBarContextView.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/ActionBarView.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/CapitalizingButton.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/CapitalizingTextView.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/IcsAbsSpinner.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/IcsLinearLayout.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/IcsListPopupWindow.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/ScrollingTabContainerView.class" />
    <ignore path="target/classes/com/actionbarsherlock/widget/ActivityChooserView$SetActivated.class" />
    <ignore path="target/classes/com/actionbarsherlock/app/SherlockActivity.class" />
    <ignore path="target/classes/com/actionbarsherlock/app/SherlockExpandableListActivity.class" />
    <ignore path="target/classes/com/actionbarsherlock/app/SherlockListActivity.class" />
    <ignore path="target/classes/com/actionbarsherlock/app/SherlockPreferenceActivity.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/ActionBarSherlockNative$ActionModeCallbackWrapper.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/app/ActionBarImpl$1.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/app/ActionBarImpl.class" />
  </issue>

  <issue id="FloatMath">
    <ignore path="target/classes/com/actionbarsherlock/internal/nineoldandroids/view/animation/AnimatorProxy.class" />
  </issue>

  <issue id="DefaultLocale">
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/CapitalizingTextView.class" />
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/CapitalizingButton.class" />
  </issue>

  <issue id="ViewConstructor">
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/CollapsibleActionViewWrapper.class" />
  </issue>

  <issue id="WrongCall">
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/IcsAdapterView.class" />
  </issue>
</lint>

現在使用しているシェル実行コマンドは

lint --config lint.xml --xml lint-results.xml .;

PS: この場合の ABS のように、除外された APKLIB のすべてのレポートが削除されるわけではないことに注意してください。これまでのところ、R.class の未使用のリソースへのレポートを除外する方法はありません。コンパイル プロセスで、リンクされたライブラリの R.class とプロジェクトがマージされ、Lint はこれを知る方法がありません。使用されていないいくつかの参照を持つ単一の R.class のみが表示され、それらが報告されます。

于 2012-11-30T16:17:01.037 に答える
1

lint.xml ファイルを完成させて、より多くの actionbarsherlock エラーを除外しました。ただし、パッケージを除外するメカニズムがあると便利です。

<?xml version="1.0" encoding="UTF-8"?>
<lint>
  <issue id="NewApi">
    <ignore path="target/classes/com/actionbarsherlock/internal/ActionBarSherlockNative.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/ActionBarSherlockNative$ActionModeWrapper.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/app/ActionBarWrapper.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/app/ActionBarWrapper$TabWrapper.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/view/ActionProviderWrapper.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/view/menu/ActionMenuItemView.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/view/menu/MenuItemWrapper.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/view/menu/ActionMenuPresenter$HasPermanentMenuKey.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/IcsAdapterView.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/IcsProgressBar.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/ActionBarView$HomeView.class"/>
    <ignore path="target/classes/com/actionbarsherlock/widget/SearchView.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/AbsActionBarView.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/ActionBarContextView.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/app/ActionBarImpl$1.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/app/ActionBarImpl.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/ActionBarSherlockNative$ActionModeCallbackWrapper.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/ActionBarView.class"/>
    <ignore path="target/classes/com/actionbarsherlock/widget/ActivityChooserView$SetActivated.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/view/menu/BaseMenuPresenter.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/CapitalizingButton.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/CapitalizingTextView.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/IcsAbsSpinner.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/IcsLinearLayout.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/IcsListPopupWindow.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/nineoldandroids/widget/NineHorizontalScrollView.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/nineoldandroids/widget/NineLinearLayout.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/nineoldandroids/view/NineViewGroup.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/ScrollingTabContainerView.class"/>
    <ignore path="target/classes/com/actionbarsherlock/app/SherlockActivity.class"/>
    <ignore path="target/classes/com/actionbarsherlock/app/SherlockExpandableListActivity.class"/>
    <ignore path="target/classes/com/actionbarsherlock/app/SherlockListActivity.class"/>
    <ignore path="target/classes/com/actionbarsherlock/app/SherlockPreferenceActivity.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/nineoldandroids/widget/NineFrameLayout.class"/>
    <ignore path="target/classes/com/viewpagerindicator/IcsLinearLayout.class"/>
</issue>

<issue id="FloatMath">
    <ignore path="target/classes/com/actionbarsherlock/internal/nineoldandroids/view/animation/AnimatorProxy.class"/>
</issue>

<issue id="DefaultLocale">
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/CapitalizingTextView.class"/>
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/CapitalizingButton.class"/>
</issue>

<issue id="ViewConstructor">
    <ignore path="target/classes/com/actionbarsherlock/internal/widget/CollapsibleActionViewWrapper.class"/>
</issue>
</lint>
于 2013-02-25T22:26:27.050 に答える