何が起きたか
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-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
出来るようになった。根本的な対応は後で考えよう……。