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


176

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

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


関連する質問する方法を尋ねる常に Mavenを使用する場合にソースとJavadocをダウンロード:stackoverflow.com/questions/5780758/...
フロー

回答:


226

m2eclipse EclipseのMavenプラグイン-逆の方法-はそれを実行できると確信しています。ソースファイルとjavadocの両方を自動的にダウンロードするように構成できます。

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

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


はい、私はm2eclipseを使い始めたばかりですが、これ(およびその他の多くのことはmaven)の処理が必要です。
ティロ

44
これらの返信はどちらも回答ではありません。なぜ彼らは投票されているのですか?ナビゲータービューでプロジェクトをコントロールクリックし、[m2 Maven]-> [ソースのダウンロード]を選択することで、ソースをダウンロードできました。次に、クラスをコマンドクリック(mac)して、リンクされたソースに移動できました。
Alex Worden、

8
コンパイル済みのJARがすでにダウンロードされている場合、Eclipseはソース/ Javadoc JARをすぐに取得しようとしないようです。Eclipseでソース/ Javadocが必要なPOMへの依存関係を含むPOMを変更し、POMを保存すると、コンパイルされたJARがすでにMavenリポジトリキャッシュにある場合でも、依存関係のソース/ Javadocがダウンロードされるようです。
FrancisGagné2012年

13
@Francis-上記の変更を行った後、プロジェクトを右クリックして[Maven> Update Project ...]を選択します。これにより、ソースjarがダウンロードされます。
炭素税2013

3
すべての依存関係のソースをダウンロードする代わりに、依存関係自体と一緒にpomで指定することにより、一部の依存関係のみをダウンロードすることは可能ですか?
nanosoft 2015

127
mvn eclipse:eclipse -DdownloadSources=true

または

mvn eclipse:eclipse -DdownloadJavadocs=true

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

また、その=true部分は必須ではないので、

mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs

8
または両方!mvn eclipse:eclipse -DdownloadSources = true -DdownloadJavadocs = trueこれは、ソースとjavadocsがダウンロード元のリポジトリに提供されている場合にのみ機能します。Springのように提供されない場合もあります。
Spencer Kormos 2008

2
Springはそれらを提供します。
Robin Green

この回答は10年以上前のものであることに注意してください。MavenでEclipse構成ファイルを作成する代わりに、Eclipseでm2eプラグインを使用します。
するThorbjörnRavnアンデルセン

71

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

<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>

これを依存関係レベルで設定できますか?
marcorossi

@marcorossi申し訳ありませんが、それが可能かどうかはわかりません。
overthink

これが適切であるとは思いません。確かに、ソースとJavadocのダウンロード設定はユーザー設定であり、プロジェクトレベルの問題ではありませんか?これをファイルに配置する方法については、以下の私の回答を参照しくださいsettings.xml
Duncan Jones

次の警告が表示されました:[警告] org.apache.maven.plugins:maven-eclipse-pluginの 'build.plugins.plugin.version'がありません。これを修正するには、<artifactId>の下に次のようなものを追加します:<version> 2.9 </ version>
Christiaan

16

ソース/ 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>

1
このsettings.xmlを.m2にコピーしましたが、ソースとjavadocsはコピーされません。ただし、CLIで次のコマンドを明示的に実行すると、ソースとjavadocsが引き継がれます。mvn dependency:sources dependency:resolve -Dclassifier = javadoc
Arun Gupta

多分これはうまくいきますが、Maven Eclipseプラグインがこれらの構成設定をどのように見つけることになっているのですか?グローバルプロパティを探していると思いますか?
chrisinmtown 2016年

9

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


3
誰もがMavenにソースをダウンロードさせる方法ではなく、それを有効にする方法を言った!オプションを有効にした後
Chad

8

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


これでうまくいきました。を実行した後mvn dependency:sources、Eclipseでクリックしてソースを読み取ることができました。m2eでの追加のマッキングは必要ありません。あなたが行うjavadocsをダウンロードするにはmvn dependency:sources -Dclassifier=javadoc
Mat Gessel 2016

4

meclipseを使用している場合は、

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

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

スラジズ



3

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

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


あなたのソリューションで、ソースを取得するモジュールを選択できます。単にそのモジュールにcdし、「mvn eclipse:clean eclipse:eclipse -DdownloadSources = true -T4 -Dmaven.test.skip = true -Denforcer.skip = true」でビルドします。ありがとう:)
vishwarajanand 2017年

2

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

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

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

プロジェクトを右クリックした場合、Mavenを選択->ソースをダウンロード

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

Eclipseの外でmvn xxxを実行するのは危険です-一部のコマンドはm2ecilpseで機能しません-私は一度実行するとプロジェクト全体を失い、Eclipseを再インストールして最初からやり直す必要がありました。

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


2

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


2

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


1

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

既存の依存関係については、パッケージエクスプローラーで「Maven依存関係」まで閲覧し、commons-lang-2.5.jarを右クリックして、Mavenを選択しました。ソースをダウンロードして...何も起こらないように見えた(プログレスバーやそれが何かをしているという兆候はない)。しかし、今はcommons-langでソースにジャンプできるので、ダウンロードされました。


1

overthinkはポンポンでセットアップを使うことを提案しました。

<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オプションを使用して失敗したため)。

しかし驚き-POMバリアントを使用すると、.classpathファイルにソースとjavadocが添付されます!


1

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

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


0

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


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.