2017-04-15 21 views
0

我們正在開始一個帶有gradle的新項目(我之前的所有項目都在Maven中),這是我第一次使用gradle的經驗,下面是我的build.gradle文件,並且試圖編譯javagroovy源使用任務compile編譯Java和Groovy源碼的Gradle任務

buildscript { 
    ext { 
     springBootVersion = '1.5.2.RELEASE' 
     springVersion = '4.3.7.RELEASE' 
    } 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 
    } 
} 

apply plugin: 'java' 
apply plugin: 'eclipse' 
apply plugin: 'groovy' 
apply plugin: 'org.springframework.boot' 

version = '0.0.1-SNAPSHOT' 
sourceCompatibility = 1.8 

repositories { 
    mavenCentral() 
} 


task compile(type: GroovyCompile) { 
    //source = fileTree(dir: 'src', include: '**/*.java') 
    sourceSets { 
     main { 
      java { srcDirs = [] } // no source dirs for the java compiler 
      groovy { srcDir "src" } // compile everything in src/ with groovy 
     } 
    } 
    destinationDir = file('build/classes/main') 

    classpath = files('build/classes/main') 
} 

dependencies { 
    compile "org.codehaus.groovy:groovy-all:2.4.10" 
    compile('org.springframework.boot:spring-boot-starter-actuator:${springBootVersion}') 
    compile('org.springframework.boot:spring-boot-actuator-docs:${springBootVersion}') 
    compile('org.springframework.boot:spring-boot-starter-groovy-templates:${springBootVersion}') 
    compile('org.springframework.boot:spring-boot-starter-jdbc:${springBootVersion}') 
    compile('org.springframework.boot:spring-boot-starter-jersey:${springBootVersion}') 
    compile('org.springframework.boot:spring-boot-starter-security:${springBootVersion}') 
    compile('org.springframework.boot:spring-boot-starter-web:${springBootVersion}') 
    compile('org.springframework:spring-webmvc:${springVersion}') 
    compile "com.microsoft:sqljdbc4:4.0" 
    testCompile('org.springframework.boot:spring-boot-starter-test:${springBootVersion}') 
} 

當我運行gradle compile命令我看到:compile NO-SOURCEbuild\classes\main

沒有編譯的類可以有人幫我gradle這個任務編譯javagroovy來源?

+0

你使用Spring Initializr產生呢?默認情況下,它包含一些應該顯示位置的源文件(通常是'src/main/*')。 – chrylis

+0

你爲什麼搞亂路徑和東西?只需包含Groovy插件,然後將src/main/java中的Java和src/main/groovy中的Groovy粘貼到上面的所有內容中即可 –

回答

0

Groovy插件的Gradle docs描述瞭如下的默認佈局。如果它是一個堅持的選擇,則不需要自定義編譯任務。

src/main/java  Production Java source 
src/main/resources Production resources 
src/main/groovy  Production Groovy sources. May also contain Java sources for joint compilation. 
src/test/java  Test Java source 
src/test/resources Test resources 
src/test/groovy  Test Groovy sources. May also contain Java sources for joint compilation. 

```