1. 無料アクセス解析

crossroad's Blog

Javaを中心にした技術ネタなど。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

(続)Maven2のブラックリストに載ってしまったリポジトリを復活させるには

以前の記事「Maven2のブラックリストに載ってしまったリポジトリを復活させるには」で、
Maven2のブラックリストについて書きましたが、その後、色々とわかりました。

1.ブラックリストは、アーティファクト単位に管理される
 当初、ブラックリストはリポジトリ単位で管理されている...例えば、
  ・centralリポジトリ はOK
  ・mirrorリポジトリ はブラックリスト(注:mirrorリポジトリと言うのは単なる例で実在しません)
 のように...と思っていたのですが、そうではなく、
 アーティファクト単位で管理されているようです。

 つまり、
  ・アーティファクトmaven-surefire-pluginは、centralリポジトリからダウンロードOK
  ・アーティファクトmaven-surefire-pluginは、mirrorリポジトリからダウンロードNG(ブラックリスト)
 のような感じになっているようです。

2.ブラックリストに載るのはプラグインだけ
 ブラックリストが管理されるアーティファクトは、プラグインだけで、
 一般のライブラリは関係ない
ようです。

 つまり、例えばリポジトリのダウンやネットワーク障害でアーティファクトの
 ダウンロードに失敗した場合...
  ・プラグイン
   ブラックリストに載る
   リポジトリやネットワークが復旧しても、ブラックリストをクリア(後述)しない限り
   ダウンロードされない

  ・ライブラリ
   ブラックリストに載らない
   リポジトリやネットワークが復旧すれば、自動的にダウンロードされる。
 と言うことになります。

3.ブラックリストの実体
 ブラックリストの実体は、ブラックリスト用のファイルが存在するのではなく、
 ローカルリポジトリのプラグインディレクトリの中にある「maven-metadata-リポジトリID.xml」
 と言うファイル
で、その内容によってブラックリストか否かを判断するようです。

 たとえば、M2_REPO/org/apache/maven/plugins/maven-surefire-plugin/maven-metadata-central.xml を見ると...

 ・通常(ダウンロード成功)時
  ----------------------------------
  <?xml version="1.0" encoding="UTF-8"?>
  <metadata>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-surefire-plugin</artifactId>
   <version>2.1.3</version>
   <versioning>
    <latest>2.3</latest>
    <release>2.3</release>
    <versions>
     <version>2.0-beta-1</version>
        :
     <version>2.3</version>
    </versions>
    <lastUpdated>20070301014816</lastUpdated>
   </versioning>
  </metadata>
  ----------------------------------


 ・ブラックリスト時
  ----------------------------------
  <?xml version="1.0" encoding="UTF-8"?>
  <metadata>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-surefire-plugin</artifactId>
  </metadata>
  ----------------------------------

 のような違いがあります。

4.ブラックリストのクリア
 上述のように、ブラックリストの実体は「maven-metadata-リポジトリID.xml」なので、
 ブラックリストをクリアするには、このファイルをバサッと消してやれば良いです。

 問題は、ローカルリポジトリ内にたくさんある同ファイルの、どれを削除すれば良いか?です。
 いちいちファイルを開いて中身を確認していられません。

 これに対する鍵は、Maven実行時のログです。
 ブラックリスト化されたプラグインが原因でMavenの実行に失敗すれば、

  [INFO] Repository 'central' will be blacklisted
  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] The plugin 'org.apache.maven.plugins:maven-surefire-plugin' does not exist or no valid version could be found

 のようなログが出力されるはずなので、この表示を手掛かりにブラックリスト化されている
 プラグインを特定し、ローカルリポジトリの下を探せば良いわけです。


と、こんなところです。
いまいち、なぜこのような仕組みが導入されたのか良くわかりませんが...

関連記事
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2007/10/11(木) 23:11:08|
  2. ソフトウェア開発 Maven
  3. | トラックバック:0
  4. | コメント:0
<<Eclipse + Maven2 + Tomcat + Seasar2 の開発環境ベスト!?プラクティス | ホーム | 宇宙旅行に行きたいなぁ>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://bagineer.blog59.fc2.com/tb.php/97-7dae23b4
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

crossroad

Author:crossroad
関西在住。男。
フリーランスのソフトウェアエンジニア。
エレキベース(Rock&Roll)とお酒が好物でございます。

カテゴリー

タグリスト

Java F1 フリーランス ベーシスト HARRY TheStreetSliders iPhone FX お酒 Seasar Maven eclipse Wicket マイホーム 野球 プロジェクトファシリテーション Rails Ruby UML お店 ソフトウェア Tomcat S2Flex2 jsf Teeda Eclipse タグライブラリ ajax タスク europa mylyn trac 

ブログ内検索

最近の記事

最近のコメント

最近のトラックバック

カレンダー

10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -

月別アーカイブ

全ての記事を表示する

全ての記事を表示する

Twitter


RSSフィード

リンク

このブログをリンクに追加する

アクセスカウンタ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。