2

デバッガーが対応するソースのないクラスファイルにステップインすると、この障害に遭遇します。多くの場合、それを見つけるのは困難です。

  • それぞれのプロジェクトをホストしているサイトを検索し、その「ソースのダウンロード」ページを見つける必要があります (たとえば、前回 JPA API を検索したとき、ソースを入手するのに何時間もかかりました)。または、リビジョン管理からチェックアウトする必要がある場合もあります。

  • 使用している正確なバージョンを知る必要があります。そうしないと、デバッガーがコメントや空の行にステップインする可能性があります:)

  • ソース コードをパッケージ化するための規則はありません。一部のプロジェクトでは、ソース コードを jar 自体に含めています。別の zip ファイルを提供するものもあります。src/他の人はそれをzip内のサブフォルダーに入れます。

Maven には、リポジトリからソースをダウンロードし、IDE 構成ファイルの生成時にソースを src パスに含める機能があることを知っています。しかし、Maven のレポは内容が貧弱で、実際にソースがアップロードされているライブラリはほとんどありません。

簡単にできるのに、なぜそんなに複雑なのですか?クラスファイル(またはそのハッシュ)をコンパイル元のソースファイル(またはそれへのリンク)に関連付ける中央リポジトリを作成できます。かなり巨大なレポかもしれませんが、かなり単純な構造になっています。IDE プラグインはそれを照会して、必要なものを自動的に取得できます。

皆さん、同じ経験はありませんか?

添付するソースをどのように入手しますか?

4

5 に答える 5

2

m2eclipseと IDEA の両方が、依存関係のソースと javadoc をダウンロードします。m2eclipse ソースは、依存関係 (またはすべてのソースが必要な場合はプロジェクト全体) を右クリックし、Maven->Download Sources をクリックしてダウンロードできます。

ソースのスクリーンショットをダウンロード

m2eclipse の新しいバージョンでは、[ウィンドウ] -> [設定...] -> [Maven] に移動し、[アーティファクト ソースのダウンロード] オプションを選択して、ソースを自動的にダウンロードすることもできます。現在利用可能なソースがない依存関係 jar で型を開くと、Maven はバックグラウンドでソースをダウンロードし、バックグラウンドでソースの添付ファイルを更新します。

Maven 設定のスクリーンショット

于 2009-09-19T22:20:42.727 に答える
1

自分で満足のいく解決策を見たことがありません。

私は Maven なしで自分のレポを作成する傾向があります (Maven は問題ありませんが、私には合いません)。私は BSD ポート システムに似たもの、つまり小さな Ant ビルド ファイルを含む 1 つの大きな構造ツリーを実行しています。これらのビルド ファイルは、プロジェクトのソースをチェックアウトし、ツリー内の別の場所からその依存関係を取得してビルドするか (これらは私がビルドしたいプロジェクト、つまり自分のプロジェクト用です)、または別の場所からバイナリを取得します (外部ファイルの可能性があります)。ソースまたは自分のバイナリ リポジトリ)。

このシステムは、src jar をプルするように簡単に拡張できますが、現在は手動で行っています。

于 2008-10-26T10:53:37.293 に答える
0

複雑かもしれませんが、最初の努力の価値はあります。

私は次の方法でそれを行います: 私のプロジェクト ディレクトリには 3 つの主要なディレクトリがあります。

  • src (自分の)
  • ライブラリ
  • suppl (ソースがない場合はソース / javadocs)

ソースを含む、ライブラリごとに1つのzipファイルをsupplに入れました。intellij では、これによりデバッガーのスーパーパワーだけでなく、javadocs も得られます。

そうです、ソースを入手するのは苦痛です。ソースが lib の .jar ファイルに含まれていることもあれば、別のダウンロード (私のお気に入り) として提供されることもあり、ソースをチェックアウトできる別の cvs/svn ディレクトリを作成する必要があることもあります。通常、zip で提供されている場合でも、好きなように再パッケージ化する必要があります。

私はmavenについて懐疑的です。ライブラリの選択に関する決定をプログラムに引き渡すのは好きではありません。

于 2008-10-25T22:45:53.470 に答える
0

アンドレアスと似たようなことをしています。私たちの lib ディレクトリには、さらに分類されたサブディレクトリがあります。そのようなサブディレクトリの 1 つは、デバッグするすべての jar のソース JAR/ZIP を含む source または debug です。一度やれば大丈夫。jar とソース jar には IVY リポジトリを使用します。

于 2008-10-26T00:27:52.470 に答える
0

M2eclipse ( http://m2eclipse.sonatype.org )を使用する場合、これはすべて自動的に行われます。

于 2008-11-08T16:27:53.990 に答える