6

多くのプロジェクトが org.jdt.core jar をlib フォルダーに配置していることに気付きました。これは、maven リポジトリーでは使用できないためです。私が使用しているビルド ツールである sbt は、URL から直接依存関係を引き出すことができます。ただし、Eclipse のダウンロード ページに jar への直接リンクが見つかりません。私が見つけることができるクローズは、多くのjarファイルを含むjdt zip全体へのリンクです。sbt が zip 依存関係から jar を抽出できるとは思えません。直接リンクまたはその他の回避策はありますか?

4

1 に答える 1

15

必要なバージョンが既にリポジトリにあるかどうかによって異なります。

org.eclipse.jdt.core の場合:

tycho プロジェクトは、いくつかのバージョンorg.eclipse.jdt.coreを中央に展開しているようです。見る:

http://central.maven.org/maven2/org/eclipse/tycho/org.eclipse.jdt.core/

search.maven.orgを使用していることがわかりました。それらの 1 つで、ニーズに十分に対応できる場合があります。しかし、彼らは「公式」バイナリを持っていないようで、それらを再構築しただけです。

( maven.eclipse.orgもあることに注意してください。これは、一部のアーティファクトに役立つ場合があります。ただし、特定の問題に適したものがないように思われる場合。)

一般的な場合:

一般に、Maven リポジトリーですべての Eclipse アーティファクトを見つけることはできません。そのため、maven リポジトリーで必要なものが見つからない場合は、Eclipse p2 リポジトリーで自分で見つける必要があります。Eclipse 3.8.1 用の が必要だとしましょうorg.eclipse.jdt.core…</p>

Eclipse Project Update Sites wiki ページには、3.8.x の更新サイトは

http://download.eclipse.org/eclipse/updates/3.8

これは、実際には 3.8、3.8.1 の「複合」p2 リポジトリです。次に、3.8.1 リポジトリの名前を特定する必要があります。compositeArtifacts.xml以下は、子リポジトリをリストするを含む jar ファイルを取得し、grep を取得し3.8.1ます。

curl -s http://download.eclipse.org/eclipse/updates/3.8/compositeArtifacts.jar | \
  gunzip -c | \
  grep '3\.8\.1'

結果?

<child location='R-3.8.1-201209141540'/>

その場所は相対パスです。3.8.1 リポジトリが

http://download.eclipse.org/eclipse/updates/3.8/R-3.8.1-201209141540/

次に、そのリポジトリのアーティファクト インデックスをフェッチします。繰り返しますが、jar 内の単一の XML ファイルです。ただし、今回は複合リポジトリではないため、以下を要求するだけですartifacts.jar

curl -s http://download.eclipse.org/eclipse/updates/3.8/R-3.8.1-201209141540/artifacts.jar | \
  gunzip -c | \
  grep org.eclipse.jdt.core[\'\"] | \
  sort -u

結果:

<artifact classifier='osgi.bundle' id='org.eclipse.jdt.core' version='3.8.2.v20120814-155456'>

(なぜ in 3.8.1 に 3.8.2 から始まるバージョンがあるのか​​はわかりませんorg.eclipse.jdt.coreが、その通りです。押し進めましょう…)

これ<mappings>で、取得した artifacts.xml の要素に従って URL をつなぎ合わせることができます。リポジトリ パスに「plugins/」を追加します。バージョンをプラグイン名に追加すると、それを取得できます。

curl -Os http://download.eclipse.org/eclipse/updates/3.8/R-3.8.1-201209141540/plugins/org.eclipse.jdt.core_3.8.2.v20120814-155456.jar

1 つまたは 2 つの jar ファイルが必要な場合は、TychoEclipse p2 Ant タスクを使用して、sbt ビルドを実行する前に必要なアーティファクトを lib フォルダーに解決することを検討してください。

于 2012-10-20T18:11:03.403 に答える