タイガー!タイガー!じれったいぞー!(SE編)

AS400, Java, JavaEE, JSF等の開発、習慣など。日々の気づきをまとめたブログ(備忘録)

【Netbeans8.2】Mavenリポジトリが参照できない

既存の Mavenプロジェクト を久しぶりにメンテしようとしたときの話です。

そのプロジェクトはMavenで管理で、Gitから取得したソースでは「pom.xml」が改変されていました(jacocoの追加)。

自分が使っているIDENetBeans はVer8.2でありまして、かなり古いVersionなのですが(Apacheでは無いVersion)、「消去」や「ビルド」など、すべてのmaven操作ができなくなってしまいました。

原因調査

原因は、mavenセントラルへのアクセスに失敗してしまうことです。

jacocoが入っていると、どうやら毎回mavenセントラルにアクセスに行くようです(詳細は不明)。

------------------------------------------------------------------------
Building ProjectName 1.0
------------------------------------------------------------------------
Downloading: http://repo.maven.apache.org/maven2/org/jacoco/jacoco-maven-plugin/0.8.6/jacoco-maven-plugin-0.8.6.pom

------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 4.259 s
Finished at: 2020-12-25T17:58:03+09:00
Final Memory: 9M/245M
------------------------------------------------------------------------
Plugin org.jacoco:jacoco-maven-plugin:0.8.6 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.jacoco:jacoco-maven-plugin:jar:0.8.6: Could not transfer artifact org.jacoco:jacoco-maven-plugin:pom:0.8.6 from/to central (http://repo.maven.apache.org/maven2): Failed to transfer file: http://repo.maven.apache.org/maven2/org/jacoco/jacoco-maven-plugin/0.8.6/jacoco-maven-plugin-0.8.6.pom. Return code is: 501, ReasonPhrase: HTTPS Required. -> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException

ブラウザから直接 http://repo.maven.apache.org/maven2/ にアクセスしてみたところ・・・

f:id:no14141:20201225174223j:plain

「501 HTTPS Required」と返ってきましたので、どこかのタイミングでHTTPS強制になったのですね。

その情報をキャッチアップできていなかったので、「情弱」な自分を恥じてしまいそう。。。

support.sonatype.com

上記のサイトを拝見したところ、2020年の1月にルールが変更になった様子。

原因がわかれば、ルールに従うのみですね。

解決方法

私のmavenは、「C:\apache-maven-3.2.2」に設置していましたので、その中にある設定ファイル(conf\settings.xml)にセントラル向けのURLを追記しました。

mirrorsタグ内に書きを追記します。 (なお、IDEを再起動しなくても、追記し上書き保存しただけで、エラーが発生しなくなりました)

  <mirrors>
    <mirror>
          <id>mirror1</id>
          <mirrorOf>central</mirrorOf>
          <name>mirror1</name>
          <url>https://repo1.maven.org/maven2/</url>
    </mirror>
  </mirrors>

まとめ

以上で問題解決できました。

課題は次の2つ。

(1) いつまでも古い道具を使っていてはいけないよ
(2) 今使っている道具の情報収集を怠ってはいけないよ

という気づきを得ましたが、まずは最新版のApache NetBeans12で、対象のプロジェクトがコントロールできるかどうかを検証してみます。

前進あるのみですね!