MavenリポジトリからソースJARを取得する


回答:


785

Maven Micro-Tip:ソースとJavadocを入手してください

IDEでMavenを使用している場合、IDEがライブラリの依存関係のソースコードとJavadocを解決する必要があることがよくあります。その目標を達成する簡単な方法があります。

mvn dependency:sources
mvn dependency:resolve -Dclassifier=javadoc

最初のコマンドは、pomファイルの各依存関係のソースコードをダウンロードしようとします。

2番目のコマンドは、Javadocのダウンロードを試みます。

Mavenは、ここでライブラリパッケージャーに翻弄されています。そのため、それらのいくつかはパッケージ化されたソースコードを持たず、それらの多くはJavadocを持ちません。

依存関係がたくさんある場合は、包含/除外を使用して特定のアーティファクトを取得することもお勧めです。たとえば、次のコマンドは、特定のArtifactIdを持つ依存関係のソースのみをダウンロードします。

mvn dependency:sources -DincludeArtifactIds=guava

出典:http : //tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/

ドキュメント:https : //maven.apache.org/plugins/maven-dependency-plugin/sources-mojo.html


10
ダウンロードされたら、どこに置かれますか?
ジェームズムーア

15
M2_HOMEの下のバイナリJARと同じディレクトリにそれらを配置します。
Alain O'Dea

19
Eclipseを使用している場合は、後で "mvn eclipse:eclipse"を実行し、プロジェクトをeclipseで更新することも役立ちます。手動でソースを各ファイルに添付する必要がなくなります。
unigeek 2014

1
ダウンロードしたソースとjavadocが見つかりません。私はM2_HOMEの下のすべてのディレクトリをチェックしました
Patrick Kiernan

2
mvn dependency:resolve -Dclassifier=javadocIntelliJ IDEAがjavadocsに自動的に気づいた後、これはとても素晴らしいです。
Jonik 2015年

89

maven-eclipseプラグインの構成と実行(例えば、コマンドラインからmvn eclipse:eclipse

   <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                </configuration>
            </plugin>
        </plugins>
    </build>

どういう意味ですか?mvn eclipse:eclipseこれをPOMファイルに追加すると、実行時にソースとドキュメントがダウンロードされるということですか?
Lii

3
はい。そのような単純な。
RobAu 2014

@RobAu、ソースはどこでダウンロードされますか、それはプロジェクトにアタッチされますか、それともそれ自体またはどこかにアタッチされますか?
Jaskey 2014年

1
M2_REPO通常のjarと同じ場所に、xxxx-yy-sources.jar としてjarとしてダウンロードされます。ライブラリのxxxx-yy jarのソースコードとして添付されます
RobAu

1
@KanagaveluSugumarでは、M2_REPOをEclipseに追加してから、プロジェクトを更新する必要があります。
RobAu 2017年

36

プロジェクトがプロジェクトソースのjarを作成し、それをmavenリポジトリーにデプロイすると、それが見つかります:)

参考までに、ソースアーティファクトは通常、maven-source-pluginによって作成されます。このプラグインは、プロジェクトのメインまたはテストソースをjarアーカイブにバンドルできます。ソースプラグインの構成で説明されています。

(...)生成されたjarファイルfinalNameは、メインのソースである場合、プラス「-sources」の値によって名前が付けられます。それ以外の場合finalNameは、テストソースの場合は「-test-sources」がプラスされます。

アーティファクト(ここでは「-sources」または「-test-sources」)を説明するために追加されたテキストは、分類子と呼ばれます。

分類子を使用するアーティファクトへの依存関係を宣言するには、<classifier>要素を追加するだけです。例えば:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate</artifactId>
  <version>3.2.7.ga</version>
  <classifier>sources</classifier>
</dependency>

通常、これを行わないことに注意してください。ほとんどのIDEは、依存関係を明示的に宣言せずに、メインアーティファクトからソース(またはJavaDoc)をダウンロードするためのサポートを提供します。

最後に、一部のリポジトリ検索エンジンでは、分類子を使用してアーティファクトを検索できることにも注意してください(少なくともNexusは高度な検索でできます)。たとえば、この検索を参照してください。


18

IntelliJ Idea のmaven ideaプラグインを使用すると、ソースとJavaドキュメントを解決してダウンロードするかどうかを指定できます

mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true

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

このプラグインは
廃止さ

18

特定のソースまたはjavadocをダウンロードするには、GroupIdsを含める必要があります-以下に示すように、カンマ区切りの値です

mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources

分類子はカンマ区切りではないことに注意してください。javadocをダウンロードするには、分類子をjavadocとして上記のコマンドをもう一度実行する必要があります。

mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc

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

14

アーティファクトをダウンロードするには

mvn dependency:get -Dartifact=groupId:artifactId:version:packaging:classifier

Groovyソースの場合、これは

mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:sources

Groovyのjavadocの場合は、

mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:javadoc

これにより、指定されたアーティファクトがローカルのMavenリポジトリ(通常は)に配置されます$HOME/.m2/repository

dependency:sources プラグインソースやプラグイン内で定義された依存関係のソースではなく、プロジェクトの依存関係のソースをダウンロードするだけです。


12

あなたはこの関連する質問で情報を見つけることができます:Eclipse
Mavenプラグインを使用する場合はMaven管理の依存関係のEclipseに添付されたソースjarファイルを取得し、次に 'mvn eclipse:eclipse -DdownloadSources = true'を使用します


これは私のために働いた唯一の解決策です。私はEclipse Keplerを使用しています。これは.classpathで適切な参照を行うためです。次のように:
aspdeepak 2014年

<classpathentry kind = "var" path = "M2_REPO / redis / clients / jedis / 2.6.0 / jedis-2.6.0.jar" sourcepath = "M2_REPO / redis / clients / jedis / 2.6.0 / jedis-2.6.0 -sources.jar ">
aspdeepak 2014年

@RobAuの回答をフォローすると、Hibernate Docsのみがリポジトリからダウンロードされ、Springからはダウンロードされません。それから私はあなたが提供したリンクを訪問し、@ mrembiszをフォローし、Mavenの設定を変更し、魅力のように動作します。Spring Docsを取得します。@Stefan De Boeyこれを共有してくれてありがとう。+1。
OO7

9

Eclipseを使用している場合は、(設定)>(Maven)を開き、(アーティファクトソースのダウンロード)を選択することもできます。これにより、pom.xmlがそのまま残り、ソースまたはJavaドキュメント(選択されている場合)がマシンの場所での開発用に保持されます〜/ .m2


7

Eclipseで

  1. を右クリック pom.xml
  2. 選択Run As-> Maven generate-sources
    デフォルトで.m2フォルダーにソースを生成します

前提条件:

MavenはEclipseで構成する必要があります。


1
別の質問に答えます。この質問は、ソースJARを生成せずにダウンロードすることに関するものです。
スティーブンC

5

日食-プロジェクトをクリックしてから:

ここに画像の説明を入力してください


私はEclipse Maven設定で「アーティファクトソースのダウンロード」をオフにしたので、jarのみをダウンロードします。しかし、後者の場合、このソリューションを使用してソースをダウンロードしようとしましたが、メッセージなしで失敗しました。mavenローカルリポジトリのjarフォルダーを削除してjarを再度ダウンロードすると、ソースjarが正常にダウンロードされました。これは、Mavenローカルリポジトリにjarがあるため、この方法を使用してソースをダウンロードできないためだと思います。
正直

4

アップロードされていればできます。通常、これらは「フレームワーク名-バージョン-ソース」と呼ばれます


4

NetBeans、コンテキストクリック

NetBeans 8 Mavenの主導のプロジェクトで、単にあなたが関心のある依存関係のjarファイルのリスト項目をコンテキスト・クリックします。を選択しDownload Sourcesます。しばらくお待ちください。NetBeansは、ソースコードが利用可能な場合、自動的にダウンロードしてインストールします。

同様Download Javadocに、ドキュメントをローカルにインストールすることを選択できます。次に、エディターでコードをコンテキストクリックして、JavaDocを表示するように選択できます。

Mavenによって駆動されるNetBeans 8プロジェクトで選択されているコンテキストメニュー項目「ダウンロードソース」のスクリーンショット


3

Eclipse(Kepler)でのMavenコンソールの監視に基づいて、ソースがまだダウンロードされていないエディターでMaven依存関係からクラスを開こうとすると、Maven依存関係のソースが自動的にダウンロードされます。これは、すべての依存関係のソースを取得する必要はないが、事前に必要な依存関係がわからない場合(およびEclipseを使用している場合)に便利です。

私が使用して終了GabrielRamierezのアプローチ@が、採用されますPascalThiventのアプローチ@前進します。


2

あなたが知っている場合のgroupIdaritifactIdを、次のようにダウンロードURLを生成することができます。

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>

http://central.maven.org/maven2/ch/qos/logback/logback-classic/

このようなページが表示され、必要なバージョンを選択して、お楽しみください! ここに画像の説明を入力してください

ここに画像の説明を入力してください


1

また、Eclipseプラグインを使用して、プロジェクトをEclipseワークスペースに入れました。私は別のプロジェクトで作業してきたので、Eclipseで作業することは可能ですが、maven-eclipse-pluginなしで作業できることがわかりました。これにより、さまざまな環境での使用が容易になり、EclipseよりもMavenを簡単に使用できるようになります。そして、それはpom.xml-fileを変更せずに。

だから、私はガブリエル・ラミレスのアプローチをお勧めします。


0

デバッグには、次のような「Java Decompiler」を使用することもできます。次に、Eclipseまたはお気に入りのIDEにプラグインとしてJADをインストールします。


0

Mavenリポジトリは、ソースjarをダウンロードする簡単な方法を提供します。

「spring-boot-actuator-autoconfigure」のデモで説明します。

  1. Mavenリポジトリーに移動します-https ://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure
  2. このページには、さまざまなバージョンがリストされています。2.1.6.RELEASEと言って、希望するものをクリックしてください -https : //mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE
  3. このページには、「ファイル」の横に「すべて表示」というリンクがあります。それをクリック -https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE/
  4. このページには、ソース用のファイルを含むさまざまなファイルがリストされています -https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE/spring-boot-actuator-autoconfigure -2.1.6.RELEASE-sources.jar

それ以外の場合は、githubからリポジトリを「git clone」して、特定のコードを取得できます。

他の人が説明しているように、「mvn dependency:sources」コマンドを使用して、使用している依存関係のソースjarを取得および生成できます。

注:一部の依存関係にはsources.jarがありません。これらにはソースコードが含まれておらず、pomファイルが含まれているためです。例:spring-boot-starter-actuator。この場合のように:

スターターPOMは、アプリケーションに含めることができる便利な依存関係記述子のセットです。サンプルコードを探して依存関係記述子のロードをコピーして貼り付ける必要なしに、必要なすべてのSpringおよび関連テクノロジのワンストップショップを利用できます。

リファレンス:Spring Boot Startersの概要


0

IntelliJ IDEAでは、ソースの自動ダウンロードオプションをオンにすることで、インポート中にアーティファクトソースを自動的にダウンロードできます。

SettingsBuild, Execution, DeploymentBuild ToolsMavenImporting

ここに画像の説明を入力してください


0

アーティファクトのソースjarファイルを手動で検索する場合は、特定のアーティファクトのmavenリポジトリの場所に移動し、[ファイル]で[すべて表示]をクリックします。ソースjarファイルを見つけることができます。

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