web-dev-qa-db-ja.com

Maven管理依存関係のEclipseに添付されたソースjarファイルを取得します

Maven(およびMaven Eclipse Integration)を使用して、EclipseのJavaプロジェクトの依存関係を管理しています。 MavenリポジトリーからのJARファイルの自動ダウンロード機能は、リアルタイムの節約になります。残念ながら、APIドキュメントとソースコードは含まれていません。

ソースとjavadocの添付ファイルも自動的に取得してEclipseに適切に登録するようにMavenを設定するにはどうすればよいですか?

175
Thilo

Eclipse用のm2Eclipse Mavenプラグイン-反対に-ができると確信しています。ソースファイルとjavadocの両方を自動的にダウンロードするように設定できます。

これは、[ウィンドウ]> [設定]> [Maven]に移動し、[アーティファクトソースのダウンロード]および[アーティファクトJavaDocのダウンロード]オプションをチェックすることで実現できます。

Screenshot of Maven Preferences

221
mrembisz
mvn Eclipse:eclipse -DdownloadSources=true

または

mvn Eclipse:eclipse -DdownloadJavadocs=true

または、スペンサーKが指摘するように、両方のフラグを追加できます。

さらに、=trueの部分は必須ではないため、使用できます

mvn Eclipse:eclipse -DdownloadSources -DdownloadJavadocs
124
Stephen Denne

この作業に関する他の回答もありますが、コマンドライン引数を覚えておく必要がない場合は、pom.xmlのmaven-Eclipse-pluginセクションにdownloadSourcesおよびdownloadJavadocs構成を追加することもできます。

<project>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-Eclipse-plugin</artifactId>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                    ... other stuff ...
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>
71
overthink

ソース/ Javadocダウンロード設定をプロジェクトpom.xmlファイルに入れたくないのは、これらがプロジェクトのプロパティではなくユーザーの好みだと思うからです。代わりに、settings.xmlファイルのプロファイルにそれらを配置します。

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.Apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.Apache.org/SETTINGS/1.0.0 http://maven.Apache.org/xsd/settings-1.0.0.xsd">

  <profiles>
    <profile>
      <id>sources-and-javadocs</id>
      <properties>
        <downloadSources>true</downloadSources>
        <downloadJavadocs>true</downloadJavadocs>
      </properties>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>sources-and-javadocs</activeProfile>
  </activeProfiles>
</settings>
15
Duncan Jones

プロジェクトを右クリック-> maven->ソースをダウンロード

9
sumeet

ソースjarがローカルリポジトリにあり、Eclipse Mavenサポートを使用している場合、ソースは自動的に添付されます。 mvn dependency:sourcesを実行して、特定のプロジェクトのすべてのソースjarをダウンロードできます。しかし、ドキュメントで同じことをする方法がわかりません。

8
Hardy

Meclipseを使用している場合

ウィンドウ-> maven->アーティファクトソースのダウンロード(チェックを選択)

(ソースの添付ウィンドウが表示される場合は、ファイルの添付ボタンをクリックしてソースの添付ウィンドウを閉じます。次回ソースを表示しようとすると、正しいソースが開きます)

スラジズ

4
surajz

Windows-> pref ..-> Mavenを試しましたが、うまくいきませんでした。したがって、コマンドmvn Eclipse:eclipse -DdownloadSources = trueを使用して新しいクラスパスを作成し、ワークスペースを1回更新しました。出来上がり。ソースが添付されました。

ソースjarのエントリはクラスパスで利用可能です。したがって、新しいビルドは問題を解決しました...

3
om39a

これに答える 類似の質問 もあり、pom設定の例を含みます。

3
andrel

Eclipse-Mavenプリファレンスでダウンロードソース/ javadocを確認するだけでは不十分な場合があります。何らかの理由でmavenがそれらのダウンロードに失敗した場合(ネットワークの停電?)、mavenはいくつかの* .lastUpdatedファイルを作成し、その後再びダウンロードすることはありません。私の経験的な解決策は、アーティファクトディレクトリを.m2/repositoryから削除し、ダウンロードソース/ javadocをチェックした状態でEclipseワークスペースを再起動し、起動時にプロジェクトをチェックしたことです。ワークスペースが再起動された後、Eclipseの進行状況のダウンロード中に、エラーが発生したプロジェクトがいくつか表示される場合があります。その後、エラーはすべてクリアされます。この手順はそれほど「科学的」ではないかもしれませんが、私にとっては成功しました。

2
user17417

Source/javadocを含めるようにmaven-Eclipse-pluginのpomを変更すると、pomに追加される新しい依存関係にのみ適用されます。既存の依存関係を適用する必要がある場合は、mvndependency:sourcesを実行する必要があります。これを確認しました。

2
bnguyen82

私のバージョンのEclipse heliosにはm2Eclipseがありません

window --> maven --> Download Artifact Sources (select check)

ウィンドウの下には「新しいウィンドウ」、「新しいエディター」、「パースペクティブを開く」などがあります。

プロジェクトを右クリックして、maven-> download sourcesを選択した場合

何も起こりません。ソースはダウンロードされず、pomファイルは更新されず、どのソースを尋ねるウィンドウもポップアップしません。

Eclipseの外でmvn xxxを実行するのは危険です-一部のコマンドはm2ecilpseで動作しません-私はそれを一度行ってプロジェクト全体を失い、Eclipseを再インストールしてゼロから始めなければなりませんでした。

私はまだecilpseとmavenがservlet-apiのような外部jarのソースを見つけて使用する方法を探しています。

2
wingnut

Indigo(およびおそらくHelios)の場合、上記のチェックボックスは次の場所にあります。

ウィンドウ->設定-> Maven

1
Chris Romine

overthink pomのセットアップを使用することを推奨:

<project>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-Eclipse-plugin</artifactId>
            <configuration>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
                ... other stuff ...
            </configuration>
        </plugin>
    </plgins>
</build>
...

最初に、これはまだjavadocとソースをアタッチしないと思っていました(以前にその-DdownloadSourcesオプションで失敗しました)。

しかし驚いたことに、.classpathファイルISは、POMバリアントの使用時にソースとjavadocを添付します。

1
jhohlfeld

ソースとjavadocsをダウンロードするために、maven-Eclipseプラグインにpom構成を追加しましたが、既存の依存関係ではなく、新しい依存関係に対して起こることを期待しています。

既存の依存関係については、パッケージエクスプローラーで「Maven Dependencies」まで参照し、commons-lang-2.5.jarを右クリックして、Maven |ソースをダウンロードして...何も起こらないように見えました(プログレスバーも何もしていないという表示もありません)。しかし、今はcommons-langのソースにジャンプできるのでダウンロードしました。

1
unique72

私は同様の問題を抱えていましたが、私にとって最適な解決策は、コンパイルされたコードと同じjarにソースを含めることでした(したがって、jar内の特定のディレクトリにはFoo.JavaFoo.classの両方が含まれます) 。 Eclipseはソースをコンパイル済みコードに自動的に関連付け、ソースからJavaDocを自動的に提供します。明らかに、これはアーティファクトを制御する場合にのみ役立ちます。

0
Dan R.

プロジェクトレベルまたはユーザープロパティレベルでプロパティを設定したら、Maven-> Update Project(Force Update)を実行してください。ソースをダウンロードします

0
arkabhi