我想在构建模型时让我的gradle构建智能。
为了获得这个,我计划阅读模式文件,获取所包含的内容,然后构建首先包含的模型(如果它们不存在)。
我对Groovy
和Gradle
都很陌生,所以请考虑到这一点。
我有什么:
build.gradle
文件,包括 n 子目录(添加到settings.gradle
的子项目)。我只有一个 gradle构建文件,因为我定义了以下任务:
subprojects {
task init
task includeDependencies(type: checkDependencies)
task build
task dist
(...)
}
我很快就会回到checkDependencies。
外部的架构文件,我可以看到。 他们每个都有0到3行代码,关于依赖关系,看起来像这样:
#include "ModelDir/ModelName.idl"
在我创建的build.gradle
任务中,应该打开并阅读这些依赖项,最好还是返回它们:
class parsingIDL extends DefaultTask{
String idlFileName="*def file name*"
def regex = ~/#include .*\/(\w*).idl/
@Task Action
def checkDependencies(){
File idlFile= new File(idlFileName)
if(!idlFile.exists()){
logger.error("File not found)
} else {
idlFile.eachLine{ line ->
def dep = []
def matcher = regex.matcher(line)
(...)*
}
}
}
}
我应该在(...)*中找到所有依赖项以及如何定义,例如
subprojectA::build.dependsOn([subprojectB::dist, subprojectC::dist])?
我可以在互联网上找到的所有dep,输出给出:
[]
[]
[modelName]
[]
[]
(...)