LoginSignup
0
1

More than 5 years have passed since last update.

Springを始める時にmavenの設定でハマったこと

Posted at

環境

macOS Sierra
maven 3.5.0
IDE STS 3.8.4

エラー内容

STSでSpringプロジェクトを作成した時に、以下のようなビルドエラーが出る。

Archive for required library: '~/.m2/repository/org/hibernate/hibernate-core/4.2.1.Final/hibernate-core-4.2.1.Final.jar' in project 'ProjectName' cannot be read or is not a valid ZIP file

(missing file) ではないのでファイルは存在している(実際にフォルダを探すと確かに存在している)が、ファイルが壊れていて読み取りできません、的なメッセージ。
Mavenでいろいろなライブラリを読み込んでいますが、なぜかこのファイルだけがエラーになるという不可解な状態。

試したこと1

いろいろ調べてみると似たような事象は多いものの、これだ!という解決策は見つからず。
わかったことは、SpringではなくMavenの問題であることが多いらしい。
ファイルが壊れているということで対象を一度削除して maven で取得し直してみる。

1. hibernate-core を削除

rm -r ~/.m2/repository/org/hibernate/hibernate-core

2. プロジェクトをアップデート

プロジェクトを右クリックして Maven > Update Project...
hibernate-core が再作成されたことを確認してビルド

結果は、何も変わらず。
rm -r ~/.m2/repositoryで丸ごと削除して試しても変わりませんでした。

試したこと2

原因がよくわからないので、とりあえずMavenの設定を確認してみます。

1. ローカルリポジトリ
初期状態のままなので、ローカルリポジトリは ~/.m2/repository ですが。
念のため、${インストールした場所}/maven/conf/settings.xml<localRepository>を設定しておきます。

settings.xml
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
  <localRepository>/Users/${ユーザー名}/.m2/repository</localRepository>

この状態で一度プロジェクトをアップデートしてビルドしてみたところ、なぜかエラーが解消されていました。
結局何が原因だったのかよくわかりませんが、一応解決できたので、同じところでつまづかないようにメモしておきます。

参考

Maven のバージョンは違いますが、こちらを参考にさせていただきました。
http://qiita.com/opengl-8080/items/226dd39bd02e41b9de28

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1