MavenリポジトリでソースJARを見つけることができるかどうか、誰かが何か考えがありますか?
19 に答える
Mavenマイクロヒント:ソースと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
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>
プロジェクトがプロジェクトソースの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)への依存を明示的に宣言せずに、メインアーティファクトからソース(および/またはJavaDoc)をダウンロードするためのサポートを提供します。
最後に、一部のリポジトリ検索エンジンでは、分類子を使用してアーティファクトを検索できることにも注意してください(少なくともNexusは高度な検索を使用します)。たとえば、この検索を参照してください。
IntelliJ Idea用のMavenアイデアプラグインを使用すると、ソースとJavaドキュメントを解決してダウンロードする必要があるかどうかを指定できます
mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true
特定のソースまたはjavadocをダウンロードするには、GroupIdsを含める必要があります-以下に示すように、コンマ区切りの値です
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources
分類子はコンマで区切られていないことに注意してください。javadocをダウンロードするには、分類子をjavadocとして上記のコマンドをもう一度実行する必要があります。
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc
アーティファクトをダウンロードするには、
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
プラグインのソースやプラグイン内で定義された依存関係のソースではなく、プロジェクトの依存関係のソースをダウンロードするだけです。
この関連する質問で情報を見つけることができます: Eclipse
Mavenプラグインを使用する場合は、Eclipseに接続されたソースjarファイルを取得してMavenが管理する依存関係を取得し、「mvn eclipse:eclipse -DdownloadSources=true」を使用します
Eclipseを使用している場合は、[設定]> [Maven]を開き、[アーティファクトソースのダウンロード]を選択することもできます。これにより、pom.xmlがそのまま残り、ソースまたはJavaドキュメント(選択した場合)がマシンの場所で開発するためだけに保持されます〜/ .m2
Eclipseでは
- 右クリック
pom.xml
- 選択
Run As
->Maven generate-sources
デフォルトで.m2フォルダにソースを生成します
前提条件:
MavenはEclipseで構成する必要があります。
それらがアップロードされている場合は、できます。一般に、それらは「frameworkname-version-source(s)」と呼ばれます
NetBeans、コンテキストクリック
Maven駆動型プロジェクトを使用するNetBeans8では、目的の依存関係のjarファイルリスト項目をコンテキストクリックするだけです。を選択しDownload Sources
ます。しばらく待つと、NetBeansがソースコードを自動的にダウンロードしてインストールします(利用可能な場合)。
Download Javadoc
同様に、ドキュメントをローカルにインストールすることを選択できます。次に、エディターでコードをコンテキストクリックして、JavaDocの表示を選択できます。
Eclipse(Kepler)でMavenコンソールを監視していることに基づいて、ソースがまだダウンロードされていないエディターでMaven依存関係からクラスを開こうとすると、Maven依存関係のソースが自動的にダウンロードされます。これは、すべての依存関係のソースを取得したくないが、事前にどの依存関係が必要かわからない場合(およびEclipseを使用している場合)に便利です。
最終的には@GabrielRamierezのアプローチを使用しましたが、今後は@PascalThiventのアプローチを採用する予定です。
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-classic/
また、Eclipseプラグインを使用して、プロジェクトをEclipseワークスペースに取り込みました。別のプロジェクトに取り組んだので、Maven-eclipse-pluginがなくてもEclipseで作業できることがわかりました。これにより、さまざまな環境での使用が容易になり、EclipseでのMavenの使用が容易になります。そして、pom.xmlファイルを変更せずにそれを行います。
だから、私はガブリエルラミレスのアプローチをお勧めします。
Mavenリポジトリーは、ソースjarをダウンロードする簡単な方法を提供します。
「spring-boot-actuator-autoconfigure」のデモンストレーションを使用して説明します。
- Mavenリポジトリに移動します-https ://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure
- このページには、さまざまなバージョンがリストされています。目的の1つをクリックします。たとえば、2.1.6.RELEASE- https: //mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE
- このページには、[ファイル]の横に[すべて表示]リンクがあります。クリックして ください-https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE/
- このページには、ソース用のファイルを含むさまざまなファイルが一覧表示されます -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からリポジトリを「gitclone」して、特定のコードを取得できます。
他の人が説明しているように、「mvndependency:sources」コマンドを使用して、使用している依存関係のソースjarを取得および生成できます。
注:一部の依存関係には、ソースコードではなくpomファイルが含まれているため、sources.jarがありません。例:spring-boot-starter-actuator。この場合のように:
スターターPOMは、アプリケーションに含めることができる便利な依存関係記述子のセットです。サンプルコードを探し回ったり、依存関係記述子のロードをコピーして貼り付けたりすることなく、必要なすべてのSpringおよび関連テクノロジーのワンストップショップを利用できます。
アーティファクトのソースjarファイルを手動で検索する場合は、特定のアーティファクトのMavenリポジトリの場所に移動し、[ファイル]で[すべて表示]をクリックします。ソースjarファイルを見つけることができます。
デバッグには、次のような「Javaデコンパイラ」を使用することもできます。JADおよびオンザフライでソースを逆コンパイルします(ただし、生成されたソースは元のソースと同じになることはありません)。次に、JADをプラグインとしてEclipseまたはお気に入りのIDEにインストールします。