質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

【spring-boot】EclipseでMaven依存関係フォルダができない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 41K+

Chi

score 13

前提・実現したいこと

EclipseでMaven依存関係と、JREシステム・ライブラリーを取得したいです。
(pom.xmlで指定したライブラリをEclipseからの操作でインストールしたいです。)

pom.xmlで出てるエラーメッセージ

プロジェクト・ビルド・エラー: Non-resolvable parent POM for com.example:demo4:0.0.1-SNAPSHOT: Failure to transfer org.springframework.boot:spring-boot-starter-parent:pom:1.3.6.RELEASE from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. オリジナル・エラー: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:1.3.6.RELEASE from/to central (https://repo.maven.apache.org/maven2): Failed to authenticate with proxy and 'parent.relativePath' points at no local POM

Demo4Application.java

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@EnableAutoConfiguration
@SpringBootApplication
public class Demo4Application {

    @RequestMapping("/")
    String home(){
        return "Hello World !";
    }

    public static void main(String[] args) {
        SpringApplication.run(Demo4Application.class, args);
    }
}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo4</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo4</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

application.properties

spring.application.name=cruncher
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost/test
server.port=9000

試したこと

①SPRING INITIALIZR(https://start.spring.io/)でMaven Project「demo4」作成し、ユーザのホームディレクトリ配下に置いてます
(作成時:DependenciesにWebを選択)
②上記のように「Demo4Application.java」「pom.xml」「application.properties」を編集
③Eclipseに「demo4」をインポート
プロジェクトのディレクトリ構成

※「Maven依存関係」と「JREシステム・ライブラリー」が追加されません!

他の方法では成功

「試したこと」①②と同様
③コマンドプロンプト上でコンパイル(mvn package)
④コマンドプロンプト上で実行(mvn spring-boot:run)
→http://localhost:9000 にアクセスしHello World!が出力されていることを確認済
⑤Eclipseにインポートして実行し、同様にHello Worldが出力されていることを確認済

補足情報(言語/FW/ツール等のバージョンなど)

Eclipse:Mars.2 Release (4.5.2)
Spring Tool Suite(STS) for Eclipse 3.7.3RELEASE
JDK:jdk1.8.0_66 
JRE:jre1.8.0_66 
Maven:3.3.3

今はコマンドプロンプト上から必要なjarをインストールすることが出来ますが、Eclipseからpom.xmlで指定したライブラリーをインストールしたいです。

アドバイスよろしくお願い致します。

A-pZさんのアドバイスより

  • 実行したこと
    ・Spring Initializrからプロジェクト生成
    ・改行コードをCRLFに置換
    →Demo6Application.java/Demo6ApplicationTests.java
    ・pom.xmlの修正(<properties>の一部コメントアウト)

~ Eclipseにプロジェクトをインポート ~
プロジェクトのディレクトリ構成

・ローカルリポジトリから「…spring-boot-starter\1.3.6.RELEASE」を削除
・Eclipseよりmaven clean を行ったところエラーがでました

Downloadの部分でエラーが発生していますが、Eclipseのネットワークは正しく設定できています。(マーケットプレースは問題なく使えます)
m2eでsetting.xmlのプロキシ設定が読み込めないことがあると聞きましたが、これが原因でしょうか。

お手数お掛けしますが、よろしくお願い致します。

maven clean実行時のエラーメッセージ

[WARNING] 
[WARNING] Some problems were encountered while building the effective settings
[WARNING] expected START_TAG or END_TAG not TEXT (position: TEXT seen ...</nonProxyHosts> -->\n\t</... @47:4)  @ C:\Users\ncb.aokic\.m2\settings.xml, line 47, column 4
[WARNING] 
[INFO] Scanning for projects...
[INFO] Downloading: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/1.3.6.RELEASE/spring-boot-starter-parent-1.3.6.RELEASE.pom
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for com.example:demo6:0.0.1-SNAPSHOT: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:1.3.6.RELEASE from/to central (https://repo.maven.apache.org/maven2): Failed to authenticate with proxy and 'parent.relativePath' points at no local POM @ line 14, column 10
 @ 
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project com.example:demo6:0.0.1-SNAPSHOT (C:\Users\ncb.aokic\demo6\pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM for com.example:demo6:0.0.1-SNAPSHOT: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:1.3.6.RELEASE from/to central (https://repo.maven.apache.org/maven2): Failed to authenticate with proxy and 'parent.relativePath' points at no local POM @ line 14, column 10 -> [Help 2]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+3

確かにプロジェクトをインポートしたところ、同じようにmaven経由のビルドエラーが検出されました。Windows版だと改行コードCRLFなのに対し、Spring Initializerから生成したプロジェクトはLFのみなため、問題が発生します。

私の環境では次のように操作して解決しました。

  • pom.xmlの修正 - propertiesの定義から以下のようにコメントアウト
<properties>
    <!--
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>-->
    <java.version>1.8</java.version>
</properties>

ビルドエラーを出してしまってるローカルリポジトリから以下を消す。(今回は1.3.6で検証)

......\.m2\repository\org\springframework\boot\spring-boot-starter\1.3.6.RELEASE

削除できないときはEclipseのm2eプラグインがjarファイルをつかみっぱなしになっているため、いったんEclipseを閉じてから削除を行う。

  • 改行コードの訂正
    クラスファイル・テストクラスファイルの改行コードがLFになっているので、元のソースコードの内容をどこかに退避しておいてから削除し、新たにクラスファイルを作成する。
    (ないしは一括でクラスファイルの改行コードを置換する)

  • mvn clean install の実行

以上で解決はしましたが、もっと抜本的な解決方法があるかもしれません。ご参考までに。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/19 10:51

    ご回答ありがとうございます。
    アドバイスの通りに修正したのですが、解決できませんでした。
    実行した内容を質問に追記しておりますので、恐れ入りますが対応していただけると幸いです。

    キャンセル

  • 2016/07/19 12:26

    expected START_TAG or END_TAG not TEXT (position: TEXT seen ...</nonProxyHosts> -->\n\t</... @47:4) のところが正しく読み取れていないようです。

    お手数ですが、settings.xmlならびにpom.xmlの改行コードも再確認していただけませんか。

    キャンセル

  • 2016/07/19 15:27

    settings.xml のタグの部分に誤字がありました・・・申し訳ありません。

    settings.xml を修正したところ、Eclipseからでも実行することができました。
    本当にありがとうございました!

    キャンセル

  • 2016/07/19 15:40

    d(・ω・ わかりづらいところをよく解決したと思います!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る