2017-06-20 15 views
1

私はkotlinでモジュラービルドスクリプトを作成しようとしています。基本的にメインスクリプトと依存スクリプト。私が持っているbuild.gradle.kts中:Gradle KTS。どのようにメインビルドから別のファイルに依存関係の設定を移動するには?

applyFrom("dependencies.kts") 

とdependencies.ktsに私が実際に依存関係を持っている:

dependencies { 
    listOf(
      kotlinModule("stdlib-jre8"), 
      // Spring boot 
      "org.springframework.boot:spring-boot-starter-web", 
      "org.springframework.boot:spring-boot-starter-security", 
      "org.springframework.boot:spring-boot-starter-logging", 
      "org.springframework.boot:spring-boot-actuator", 
      // Spring 
      "org.springframework.data:spring-data-mongodb", 
      // Logging 
      "org.slf4j:slf4j-api", 
      "org.slf4j:jcl-over-slf4j", 
      "ch.qos.logback:logback-classic" 
    ).forEach { compile(it) } 

    listOf(
      "org.codehaus.groovy:groovy-all", 
      "org.springframework.boot:spring-boot-starter-test", 
      "org.spockframework:spock-core:1.0-groovy-2.4", 
      "org.spockframework:spock-spring:1.0-groovy-2.4" 
    ).forEach { testCompile(it) } 
} 

これはで失敗します。

Error: Could not find method kotlinModule() for arguments [stdlib-jre8] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. 

もし私がkotlinModuleをインポートしようとすると、失敗します:

Error:Cause: startup failed: 
script '/home/czar/personal/work/***/dependencies.kts': 1: unable to resolve class org.gradle.script.lang.kotlin.kotlinModule 
@ line 1, column 1. 
import org.gradle.script.lang.kotlin.kotlinModule 
^ 
1 error 

私は間違って何をしているのですか?

バージョンおよび関連情報:

  • のGradle:4.0
  • のGradle KTS:0.9.0
  • エディタ:IntelliJのU 2017年1月4日
  • Kotlinプラグイン:1.1.3 EAP
  • プロジェクトのKotlinバージョン:1.1.2.5

私のビルドは完全にwhメインファイルに依存関係があります。必要な設定(buildscript、plugins、repositoriesなど)はすべて存在しますが、ここでは省略します。

答えて

1

ここでは物事のカップル:

  1. 私はあなたがbuild.gradle.ktsしかしapplyFrom("dependencies.kts")内部には何もないと仮定しています。

    buildscript { 
        repositories { 
        //gradleScriptKotlin() 
        mavenCentral() 
        maven { setUrl("https://repo.spring.io/milestone") } 
        } 
    
        dependencies { 
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.0.M2") 
        classpath(kotlin("gradle-plugin")) 
        } 
    } 
    
    plugins { 
        //id("io.spring.dependency-management") 
        id("org.gradle.application") 
        id("org.gradle.idea") 
        //id("org.gradle.java") 
        id("org.jetbrains.kotlin.jvm") version "1.1.2-5" 
        //id("org.springframework.boot") 
    } 
    ... 
    // applyFrom("dependencies.kts") 
    
  2. dependencies.ktsdependencies.gradle.ktsに名前を変更する必要があります(とも参照)あなたがkotlinModule("stdlib-jre8")を使用しているのGradleのバージョンによって

  3. は廃止されることがあります。そうすれば、あなたはまだそれにbuildscriptpluginsブロックを必要とします既に;最新のものではkotlin("stdlib-jre8")が使用されています。
  4. このファイル自体にはさらに設定がありません(buildscriptrepositories、潜在的にはplugins)。

    buildscript { 
        repositories { 
        //gradleScriptKotlin() 
        mavenCentral() 
        maven { setUrl("https://repo.spring.io/milestone") } 
        } 
    
        dependencies { 
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.0.M2") 
        classpath(kotlin("gradle-plugin")) 
        } 
    } 
    
    apply { 
        plugin("io.spring.dependency-management") 
        //plugin("kotlin-jpa") 
        //plugin("kotlin-spring") 
        plugin("kotlin") 
        plugin("org.springframework.boot") 
    } 
    
    repositories { 
        //gradleScriptKotlin() 
        mavenCentral() 
        maven { setUrl("https://repo.spring.io/milestone") } 
    } 
    ... 
    // ...your `dependencies` block here 
    

Notice I'm using spring-boot-gradle-plugin:2.0.0.M2 and the milestone repo(s); you might be using a stable/prior version. Tweak accordingly.

いくつかの例についてKotlin language support for Gradle build scriptsで見てください。あなたがここでやっていることで若干違っていますが、そのようなことをする必要があるかもしれません。

+0

こんにちは。完全な返信をありがとう。私はbuildscript、プラグイン、リポジトリ、プラグインの設定などを 'build.gradle.kts'に持っています。依存関係のブロックがこのファイルにある場合は魅力的です。私はgradle 4.0(KTS 0.9.0)です。ファイルの名前の変更は部分的にうまくいきました。別の例外があります。「エラー:名前付きコンパイル」が見つかりません。 – Czar

+0

そして、私はBoot 2.0.0.M2 :)とKotlin 1.1にもいます。 2-5 – Czar

+0

...だから私はあなたが 'buildscript'と'リポジトリ 'と潜在的に'プラグイン 'も必要と言っていたのです –

関連する問題