2014-09-23 451 views
0

我正在通过一些简单的Gradle示例,并试图让我的头在语法。根据Gradle语法,在'sourceSets'(它是一个SourceSetContainer)的某处必须有一个名为'main'的方法,它需要一个Closure。我想通过浏览Gradle javadoc可以找到它,但我找不到它。有人能指出我在这个例子中'main'的定义吗?'sourceSets'的'main'方法在哪里定义?

apply plugin: 'java' 

sourceSets { 
    main { 
     java { 
      srcDirs = ['src'] 
     } 
    } 
} 

回答

2

sourceSets命名源集的容器。 java插件将名为main(和另一个名为test)的源集添加到该容器。因此,没有称为main的物理方法或财产。 sourceSets.main { ... }也可以写成sourceSets.getByName("main") { ... }

+0

谢谢!这表明我朝着正确的方向前进。我查找了NamedDomainObjectCollection(SourceSetContainer继承)的文档。我混乱的根源是我不知道可以动态地将方法添加到对象中,但是[NamedDomainObjectCollection]的文档(http://www.gradle.org/docs/current/javadoc/org/gradle/api/ NamedDomainObjectCollection.html)另有说法。 – markdb314 2014-09-23 02:30:14