0

.java非推奨のメソッド/プロパティ/API を使用するために、大量の Java プロジェクト (約 7000 ファイル) をスキャンするツールの開発を任されています。このツールは、一度に 1 つのファイルをスキャンし、分析を実行し、問題のあるファイルのリストを、非推奨のコードが表示された行番号とともに出力するように指定されています。これを実現するためにEclipse JDT Javaパーサーを使用してきましたが、これを理解できないようです。

各ファイルは一度に 1 つずつスキャンされるため、コンパイラはどのメソッドが非推奨で、どのメソッドが非推奨であるかを認識できませんisDeprecated()

コード内で検索するすべての廃止されたメソッドのリストをコンパイルし、コード ベース内のすべてのメソッド呼び出しに対してそれをチェックしました (それらはたくさんあります)。パーサーの制限またはパーサーに関する私の知識の制限のいずれかによるポジティブ。

個々のプロジェクトをビルドして、コンパイラの警告を.txtファイルなどに出力することはできますか? このような規模のプロジェクトを扱うのはこれが初めてなので、このようなものがどのように機能するのかよくわかりません. そして、これは仕様に正確には適合せず、かなり時間がかかると思いますが、それが必要な場合は、それが必要です。

4

3 に答える 3

1

Eclipseはすでにそれを行っています。コンパイラの警告を有効にする必要があります Java development user guide > Reference > Preferences > Java > Compiler > Deprecated API

知らなかった場合は、EclipseコンパイラーをEclipse IDEの外部で使用することもできます。手順については、Eclipseヘルプを参照してください。

于 2013-01-24T03:35:50.160 に答える
0

興味深い質問です!あなたは、コード内で検索するすべての廃止されたメソッドのリストをコンパイルし、コード ベース内のすべてのメソッド呼び出しに対してそれをチェックしたと言いました。

JDTを使用する場合、これは良い方法だと思います。改善できるのは、ターゲットライブラリ/パッケージを解析するときに、対応するクラスとパッケージで非推奨のメソッドを取得することです。たとえば、SDK を解析すると、廃止されたすべてのメソッドと、それに対応するクラスおよびパッケージが取得されます。これらの修飾されたメソッド名を使用して、メソッド、クラス、およびパッケージの名前を照合することにより、Java プロジェクトの大規模なコレクションを検索できます。これにより、誤検知が大幅に減少するはずです。

于 2013-03-15T13:29:25.410 に答える
0

非常に興味深いことに、あなたが解決しようとしている問題は、私が仕事で抱えていた正確な問題です(これに関連するさらに多くの問題)...私のために働いたあなたのための良い解決策があると思います.

ステップ 1:プログラムのようなクローラーを使用してファイルを作成します。このクローラーの目的は、API から廃止されたすべての機能を含むファイル、たとえば csv ファイル (職場で非常に一般的) を作成することです (メソッド、フィールド、インターフェイス、クラス、コンストラクターなど)。このファイルの作成は初心者向けではありませんが、ある程度の経験があれば、3 ~ 4 時間の作業で完了します。

ステップ 2: ステップ 1 のファイルを取得したら、すべての Java ファイルをチェックスキャンする必要があります。ステップ 1 のデータセットが更新され、適切にプログラムされている場合は、ステップ 1 のファイルと比較する必要があります。あなたは物事を見逃すことはありません...

ステップ 3: リストを出力します。これは練習としてお任せします。楽しんで !

直感: Java または好きな言語を使用して jsoup や json などの単純な html パーサーでデータセットを作成し、データセットとスキャンする必要がある .java ファイルを比較する bash スクリプトを作成します。スクリプト内 - 非推奨の API を使用するすべての .java について、この使用に関する必要な情報を含む .txt ファイルを作成します。幸運を。

于 2015-03-09T09:19:33.000 に答える