18238


Spring dependency management
pluginを使用していますが、twitter4jをdependencyに追加しましたがエラーがでて、解決してくれません。下記にbuild.gradleの内容を示します。

[code]

    build.gradle
    
    buildscript {
        ext {
            springBootVersion = '1.2.7.RELEASE'
        }
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 
            classpath('io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE')
        }
    }
    
    apply plugin: 'java'
    apply plugin: 'eclipse'
    apply plugin: 'idea'
    apply plugin: 'spring-boot' 
    apply plugin: 'io.spring.dependency-management' 
    
    jar {
        baseName = 'sample'
        version = '0.0.1-SNAPSHOT'
    }
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
    
    repositories {
        mavenCentral()
    }
    
    
    dependencies {
        compile('org.springframework.boot:spring-boot-starter-data-jpa')
        compile('org.springframework.boot:spring-boot-starter-redis')
        compile('org.springframework.boot:spring-boot-starter-social-twitter')
        compile('org.springframework.boot:spring-boot-starter-web')
        compile('org.twitter4j:twitter4j-core')
        runtime('org.postgresql:postgresql:9.4-1201-jdbc41')
        testCompile('org.springframework.boot:spring-boot-starter-test') 
    }
    
    
    eclipse {
        classpath {
             containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
             containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
        }
    }
    
    task wrapper(type: Wrapper) {
        gradleVersion = '2.7'
    }
    
[/code]

エラー

[code]

    :compileJava
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Could not resolve all dependencies for configuration ':compile'.
    > Could not find org.twitter4j:twitter4j-core:.
      Required by:
          :sample:unspecified
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
    
    BUILD FAILED
    
    Total time: 7.94 secs
    
[/code]

以前に、twitter4jをバーション表記ありで追加してしまったことが原因かもしれませんが、どうすれば直りますでしょうか。Eclipse上でcleanやrefreshをしたり、`gradle
clean`を実行しましたが直りませんでした。アドバイスをください。よろしくお願いします。


CC BY-SA 3.0
2015-10-28T01:22:19.823
18149
2015-10-30T06:29:17.317
7232
question
java spring gradle
Spring dependency management pluginで依存性解決できない


もう解決されているようですが、一応回答しておきます。

dependency-managementプラグインは、MavenにおけるBOMを使ってバージョンを解決する仕組みをGradleに提供します。

[code]

    dependencyManagement {
        imports {
            mavenBom 'io.spring.platform:platform-bom:1.1.4.RELEASE'
        }
    }
    
[/code]

などのようにBOMを指定して使います。  
今回の場合はSpring Bootプラグインが提供するBOMが使われます。  
Spring Boot 1.2.7であれば、以下から品揃えが確認できます。  
<http://docs.spring.io/spring-boot/docs/1.2.7.RELEASE/reference/html/appendix-
dependency-versions.html>

このBOMに含まれているプロダクトであれば、

[code]

    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    
[/code]

などのようにバージョンをあえて未指定にすることで、バージョンの解決をBOMに任せることができます。  
これによって、バージョン相性問題や更新時の手間が解消されます。

Twitte4Jですが、このBOMに含まれていません。  
このためargus氏が指摘しているように、バージョンを明示指定する必要があります。

[code]

    compile('org.twitter4j:twitter4j-core:X.Y.Z')
    
[/code]

余談ですが、Spring Boot 1.3.0からはSpring BootのGradleプラグインがdependency-
managementプラグインを自動的に適用するので、build.gradleにdependency-
managementの設定を明記する必要がなくなるようです。


CC BY-SA 3.0
2015-10-30T06:29:17.317
18238
2015-10-30T06:29:17.317
2356
18149
answer