in model/src/org/jetbrains/jps/Module.groovy [36:86]
def Module(project, name, initializer) {
this.project = project;
this.name = name;
setInitializer({
def meta = new InitializingExpando()
meta.dependency = {Object item, DependencyScope scope, boolean exported ->
dependencies << new ModuleDependency(project.resolve(item), scope, exported)
}
meta.classpath = {Object[] arg ->
arg.each { dependencies << new ModuleDependency(project.resolve(it), PredefinedDependencyScopes.COMPILE, false) }
}
meta.testclasspath = {Object[] arg ->
arg.each { dependencies << new ModuleDependency(project.resolve(it), PredefinedDependencyScopes.TEST, false) }
}
meta.moduleSource = {
dependencies << new ModuleDependency(new ModuleSourceEntry(module: this), PredefinedDependencyScopes.COMPILE, true)
}
meta.content = {Object[] arg ->
arg.each { contentRoots << it}
}
meta.src = {Object[] arg ->
arg.each { sourceRoots << it }
}
meta.testSrc = {Object[] arg ->
arg.each { testRoots << it }
}
meta.exclude = {Object[] arg ->
arg.each { excludes << it }
}
initializer.delegate = meta
initializer.setResolveStrategy Closure.DELEGATE_FIRST
initializer.call()
def wrongProperties = ["dependency", "classpath", "testclasspath", "src", "testSrc", "exclude"] as Set
meta.getProperties().each {String key, Object value ->
if (!wrongProperties.contains(key)) {
props[key] = value
}
}
})
}