4

maven と vim を組み合わせていますが、プロジェクトが依存するすべてのソースを指定されたディレクトリにダウンロードして、それらを一緒に解凍する方法が見つかりません。

簡単に生成できるようtagsに。

誰かが方法を知っていますか?

4

1 に答える 1

5

maven-eclipse-pluginプラグインを使用してソースをダウンロードし、利用可能なソース jar のリストを提供できます (一部の依存関係では利用可能なソースがない場合があります)。

依存関係プラグインもソースをダウンロードできますが、必要な jar のリストを取得するのは困難です。

次のようなことを試すことができます:

dir=target/sources
mkdir -p $dir
mvn eclipse:eclipse -DdownloadSources
sed -rn '/sourcepath/{s/.*sourcepath="M2_REPO.([^"]*).*/\1/;p}' .classpath | \
  (cd $dir && xargs -i jar xf ~/.m2/repository/{})

これにより が実行mvn eclipse:eclipse -DdownloadSourcesされ、ソースがダウンロードされ、.classpathファイルがローカル ディレクトリに書き込まれます。このファイルには、ソース jar へのパスが含まれています。次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
  <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
  <classpathentry kind="output" path="target/classes"/>
  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
  <classpathentry kind="var" path="M2_REPO/net/sourceforge/findbugs/jsr305/1.3.7/jsr305-1.3.7.jar"/>
  <classpathentry kind="var" path="M2_REPO/net/jcip/jcip-annotations/1.0/jcip-annotations-1.0.jar" sourcepath="M2_REPO/net/jcip/jcip-annotations/1.0/jcip-annotations-1.0-sources.jar"/>
</classpath>

この例では、JCIP アノテーション jar のソースはあるが、FindBugs JSR305 jar のソースがないことがわかります。

sed コマンドは、ソース jar のパス (Maven ローカル リポジトリに相対的) を抽出します。次に、xargs コマンドは、各ソース jar を に解凍し$dirます。

Eclipse プラグインは、ファイル.classpath.projectディレクトリーを作成します。Eclipse を.settings使用しない場合は、これらを削除できます。

于 2013-01-18T11:25:50.317 に答える