web-dev-qa-db-ja.com

MavenリポジトリからソースJARを入手する

MavenのリポジトリでソースJARを見つけることができるかどうか、誰かが何か考えを持っていますか?

425

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

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

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

771
Alain O'Dea

コマンドラインから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>
87
RobAu

プロジェクトがプロジェクトソースの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は高度な検索を使っています)。例えば この検索 を見てください。

33
Pascal Thivent

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

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

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

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

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

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

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

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はプロジェクトの依存関係のソースをダウンロードするだけで、プラグインのソースやプラグイン内で定義された依存関係のソースはダウンロードしません。

13
Maddin

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

11
Stefan De Boey

eclipseを使用している場合は、Preferences> Mavenを開いてDownload Artifact Sourcesを選択することもできます。これによりpom.xmlはそのまま残り、開発のためにソースまたはJava doc(選択されている場合)がそのままマシンの場所に保管されます。〜/ .m2

9
Gabriel Ramirez

Eclipseでは

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

前提条件:

MavenはEclipseで設定する必要があります。

6
bondkn

Eclipseの場合は、プロジェクトをクリックしてください。

enter image description here .

4
Witold Kaczurba

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

Mavenドリブンプロジェクトの NetBeans 8 では、関心のある依存関係のjarファイルリスト項目を単にコンテキストクリックします。 Download Sourcesを選択してください。しばらく待つと、NetBeansはソースコードがあれば自動的にダウンロードしてインストールします。

同様に、ドキュメントをローカルにインストールするためにDownload Javadocを選ぶことができます。次に、エディタ内のコードをコンテキストクリックして、JavaDocを見ることを選択できます。

screen shot of context-menu item "Download Sources" being chosen in a NetBeans 8 project driven by Maven

3
Basil Bourque

アップロードされていれば可能です。一般にそれらは "frameworkname-version-source(s)"と呼ばれます。

3
Bozho

Eclipse(Kepler)でMavenコンソールを見ることに基づいて、ソースがまだダウンロードされていないエディターでMaven依存からクラスを開こうとすると、Maven依存のソースが自動的にダウンロードされます。これはあなたがすべての依存関係のためにソースをつかみたくないときには便利ですが、あなたはどれが前もって欲しいのかわかりません(そしてEclipseを使っています)。

私は @ GabrielRamierezのアプローチ を使用してしまいましたが、 @ PascalThiventのアプローチ を使用します今後。

2
eebbesen

プロジェクトをEclipseワークスペースに取り込むためにEclipseプラグインも使用しました。私は別のプロジェクトに取り組んできたので、Eclipseを使って作業することは可能ですが、Maven-Eclipse-pluginを使わなくても可能です。これにより、さまざまな環境での使用が簡単になり、Eclipse上でmavenを簡単に使用できるようになります。そしてそれはpom.xmlファイルを変更することなく。

だから、私はGabriel Ramirezのアプローチをお勧めします。

1
eeezyy

groupIdおよびaritifactIdがわかっている場合は、次のようにダウンロード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-class /

そして、あなたはこのようなページを得るでしょう、あなたが必要とするバージョンを選んでください、ちょうどそれを楽しんでください! enter image description here

enter image description here

1
senninha

デバッグには、JADやソースの逆コンパイルなどの「Java Decompiler」を使用することもできます(ただし、生成されたソースは元のものと同じになることはありません)。それからJADをEclipseまたはあなたのお気に入りのIDEのプラグインとしてインストールしてください。

0
atom88