2
Help us understand the problem. What are the problem?

posted at

Maven 3.8.1 で mvn install 出来ない(maven-default-http-blocker)されたメモ

何が起きたか

mvn install が実行できず、以下のようなエラーメッセージが表示された。

[ERROR] Failed to execute goal on project test: Could not resolve dependencies for project xxx: Failed to collect dependencies at my.test:dependency:version -> my.test.transitive:transitive:version: Failed to read artifact descriptor for my.test.transitive:transitive:jar:version: Could not transfer artifact my.test.transitive:transitive:pom:version from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [blocked-repository-id (http://blocked.repository.org, default, releases+snapshots)]

Maven 3.8.1リリースノートより

これは例だがおおむねこんな内容であった。

原因

maven-default-http-blocker で検索したところ、上記のリリースノートが引っかかる。

このバージョンで Block external HTTP repositories by default が取り込まれたようで、pom.xml の repository に http://example.com のような HTTP での指定がデフォルトでブロックされるようになったようである。

Release Date が 2021-04-04 となっているのでこの記事を書いている時点ではかなり新しい。

解決策

指定 repository を HTTPS 対応するか、設定をいじるか。

あまりよくないのかもしれないが、急ぎで使えるようにする必要があったのでワークアラウンド的な対応をした。

${user.home}/.m2/settings.xml(環境によって違うかも)
<settings>
  ...
  <mirrors>
    <!-- ここをコメントアウトする
    <mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror>
    -->
  </mirrors>
  ...
</settings>

とりあえず mvn install 出来るようになった。根本的な対応は後で考えよう……。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?