2014-11-25 373 views
1

我有三個子項目如何爲gradle子項目創建目錄結構?

root 
| 
|-subA 
|-subB 
|-subB 

在根目錄下的文件的build.gradle根項目有此內容

allprojects { 
} 

subprojects { 
    apply plugin: 'java' 
    apply plugin: 'eclipse' 
    sourceCompatibility = 1.8 
    targetCompatibility = 1.8 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     compile 'org.zeromq:jeromq:0.3.+' 
     compile files('../lib/tibrvj.jar') 
    } 
    eclipse { 
     classpath { 
      downloadJavadoc=true 
     } 
    } 
    sourceSets { 
     main.java.srcDirs = ['src/main/java'] 
     main.resources.srcDirs = ['src/main/resources'] 
     test.java.srcDirs = ['src/test/java'] 
     test.resources.srcDirs = ['src/test/resources'] 
    } 
} 

task wrapper(type: Wrapper) { 
    gradleVersion = '2.2' 
} 

task srcDirs << { 
    subprojects.sourceSets.main.java.srcDirs.each{f -> println(f)} 
    subprojects.sourceSets.main.resources.srcDirs.each{f -> println(f)} 
    subprojects.sourceSets.test.java.srcDirs.each{f -> println(f)} 
    subprojects.sourceSets.test.resources.srcDirs.each{f -> println(f)} 
} 

我不知道我怎麼能創造一切與此配置的目錄。其他gradle.build文件此刻爲空

回答

2

除非您嘗試更改默認設置,否則不需要在子項目中設置sourceSets目錄。

你有沒有嘗試過這樣的:

subprojects { 
    task makeSrcDirs << { 
    sourceSets.main.java.srcDirs*.mkdirs() 
    sourceSets.main.resources.srcDirs*.mkdirs() 
    sourceSets.test.java.srcDirs*.mkdirs() 
    sourceSets.test.resources.srcDirs*.mkdirs() 
    } 
} 
+0

這個工程。爲什麼gradle不能自行創建這些目錄? – mrt181 2014-11-25 15:24:05

+0

Gradle可以(以有限的方式):http://www.gradle.org/docs/current/userguide/build_init_plugin.html – bigguy 2014-11-25 22:30:30