8

私の場合、それを行う理由は2つあります。

  • MacBook JDKには存在するが、Linuxには存在しないクラスを誤ってインポートすることがあります。これにより、Linuxベースのボックスであるciサーバーでビルドが失敗します。私は頻繁に起こることはありませんが、それが起こったとき、私はそれをより早く見つけるためのより賢い方法があるべきだと思っています。
  • 未使用のインポートは、IDE/コード分析で警告をトリガーします。時々、誰かがこのようなものを片付けるのに時間を費やす必要があります。IDEを右クリックするだけでも、変更をコミットして、ビルドですべてが正常であることを確認する必要があります。

プログラムで未使用のインポートを見つけて(たとえば単体テストから)ローカルで失敗する方法があるかどうか知りたいです。

未使用のインポートが原因でビルドに失敗するのは厳しいように聞こえるかもしれませんが、チーム全体の時間を節約できれば、そうするのが賢明です(それについても意見を聞いてみたいです)。

更新

私はyegor256の提案に従い、最初はSunコード規約の小さなサブセット(未使用のインポートもその1つです)にCheckstyleタスクを組み込み、違反が見つかった場合にビルドを中断させました。

1週間のトライアルの後、コードベースに未使用のインポートがゼロになり、このルールに関する苦情が驚くほどゼロになりました(ちなみに、Checkstyleは非常に高速です。1秒未満で100KLocを分析できます)。

このような分析にIDEを使用する場合:はい、それは良い選択ですが、自動ビルドの一部としてこの種のチェックを実行する方が適切です。

4

6 に答える 6

9

あなたがやろうとしていることは静的コード分析と呼ばれています。Checkstyleはあなたを助けることができます。Mavenを使用している場合、このプラグインが自動化を行います:http: //maven.apache.org/plugins/maven-checkstyle-plugin/

また、いくつかの静的分析ツールを統合し、それらを事前構成するqulice.com(私はその開発者の1人です)を見ることができます(Checkstyle、PMD、FindBugsを含む)。

于 2012-09-17T05:29:03.990 に答える
4

EclipseIDEまたはIntelliJIDEAを使用している場合は、次のように構成できます。

1a。インポートの整理/保存時またはコミット前の未使用のインポートの削除(クリーンアップ設定を参照)

1b。「未使用のインポート」警告をエラーに切り替えます(エラー設定を参照)

2a。com。*のものを含まないjreを構成します

2b。jreからのプロプライエタリAPIの使用に関する警告をエラーになるように構成します

ただし、ビルドサーバーで確認することをお勧めします。この場合でも、CheckStyleの設定などのより複雑な作業が必要になります。

于 2012-09-17T09:32:12.047 に答える
1

プログラムで未使用のインポートを見つけて(たとえば単体テストから)、ローカルでビルドに失敗する方法があるかどうか知りたいです。

IntelliJを使用してインポートを整理します。これにより、未使用のインポートがすべて削除されます。コードベースの上部にある1つのホットキーを使用してこれを実行し、すべてのインポートを修正できます。(700を超える他のタイプの静的チェックと修正もあります)

未使用のインポートが原因でビルドに失敗するのは厳しいように聞こえるかもしれませんが、チーム全体の時間を節約できれば、そうするのが賢明です(それについても意見を聞いてみたいです)。

IntelliJに、インポートが整理されたフォーマットのコードをチェックインさせているので、最初から問題が発生することはありません。;)

于 2012-09-17T07:45:11.820 に答える
1

このIDEまたはそのIDEを使用するのと同じように多くのコメントが表示されます。しかし、私の友達はみんなその違いを理解しようとしています。プログラムで何かを行うことは異なり、IDEを使用することも異なります。

プロセスをプログラマティックにしたい場合は、IDEの提案は役に立ちません。彼は完全なプロセスを構築しており、このステップはその一部であるため、誰かがこの質問をしている可能性があります。IDEを開くと、CIが機能しているさまざまなマシンやOSで彼がどのように役立つでしょうか?

私も同様のラインで1つのツールを構築しています。ある程度までは達成しましたが、プログラムでIDEを開いて自動的に閉じ、ソースコードも修正します。しかし、Linuxで同じものを開くことは私にとって質問かもしれません。

答える前に誰かの意見を理解することは本当に非常に重要です。

于 2016-10-13T12:15:44.187 に答える
0

コンピュータサイエンスでは、実行せずにコードを分析するこのようなプロセスに付けられた名前は、として知られていstatic code analysisます。

IDEを使用してみてください。私はEclipseを使用しています。これは、すべての未使用のインポートと未使用の変数またはメソッドを黄色の下線でマークします。

于 2012-09-17T06:19:30.537 に答える
0

これらの無関係な質問ではありませんか?ローカルJDKにのみ存在するクラスをインポートする場合、これらのインポート使用されます(満たされないだけです)。どちらの問題についても、チェックイン前ではなく、コードの記述時に問題が検出されるように、IDEで解決することをお勧めします(検出が早いほど、修正が容易になります...)。

Eclipseでは、アクセスルールを使用してインポートの不満を防ぎ、適切な保存アクションを有効にすることで、ソースファイルが保存されるたびにインポートを自動的に修正できます。これらの設定をバージョン管理にチェックインすると、チームと簡単に共有できます。

于 2012-09-17T06:25:29.983 に答える