Eclipse のMarvenプロジェクト作成時にCould not resolve artifact archetypesのエラーが出る場合の対処

EclipseでMarvenプロジェクトを作る際には、「新規プロジェクトの作成」から、「new Maven Project」を選択し、その後、そのMavenプロジェクトのタイプを選択して作成します。

この際に、下記のようなエラーが出てプロジェクトを作成できない場合の対処法です。

エラー内容

Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart:1.1 from any of the configured repositories.

Could not resolve artifact org.apache.maven.archetypes:maven-archetype-quickstart:pom:1.1

Could not transfer artifact org.apache.maven.archetypes:maven-archetype-quickstart:pom:1.1 from/to central (https://repo.maven.apache.org/maven2): connect timed out

エラー原因

エラーの原因は環境によって異なるでしょうが、上記のようにConnetErrorが出る場合は、プロジェクト作成時にプロジェクトの雛形をネットに取得に行く際、接続ができなくてエラーになっている可能性があります。

確認の方法としては、お使いのPCのユーザディレクトリに、「.m2」という、Maven設定を置いていくためのディレクトリができていると思います。

この「<ユーザディレクトリ>\.m2\repository\org\apache\maven\archetypes\maven-archetype-webapp」に、通常、作成するプロジェクトの雛形のファイルをダウンロードしてキャッシュしているが、これが、きちんとダウンロードできていないと、プロジェクト生成に失敗する場合があります。

そして、ダウンロード失敗の原因ひとつは、ネット上のリポジトリアクセスできないことで、インターネットにつながっているにもかかわらずそのエアーが出る場合は、proxyの設定がうまく聞いていない場合が多いです。

私の場合、上記フォルダに出来た、中途半端なファイルを開いてみると、

#NOTE: This is an Aether internal implementation file, its format can be changed without prior notice.

@default-central-https\://repo.maven.apache.org/maven2/.lastUpdated=1470726500754

https\://repo.maven.apache.org/maven2/.error=Could not transfer artifact org.apache.maven.archetypes\:maven-archetype-webapp\:jar\:1.0 from/to central (https\://repo.maven.apache.org/maven2)\: connect timed out

といったエラーが吐かれていました。

対処

上記原因から、対処法は、Mavenがリポジトリ情報を取得する際に使用するネットワーク情報に、きちんとproxyの情報を設定してあげる必要があります。

やり方は、「<ユーザディレクトリ>\.m2\」直下に「setting.xml」を置いて、下記のような設定を行います。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <pluginGroups>
  </pluginGroups>
 
  <proxies>
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>https</protocol>
      <username></username>
      <password></password>
      <host>xxxx.xxxx.xxxx</host>
      <port>8080</port>
      <nonProxyHosts></nonProxyHosts>
    </proxy>
  </proxies>
 
  <servers>
  </servers>
 
  <mirrors>
  </mirrors>
 
  <profiles>
  </profiles>
</settings>

上記の設定で、「proxies」が非常に重要です。

その上で、

Preferences->Maven->User Settings

に設定を行い、「Reindex」します。

これでもうまくいかない場合は、

<ユーザディレクトリ>\.m2\repository

ディレクトリにキャッシュされているフォルダを削除してから、再度試してみてください。