如何解决Gradle:在构建时将子项目文件复制到 rootproject 中
鉴于此 gradle 项目:
org.mycompany.rootProject
|
|--org.mycompany.subProject0001
| |
| |-src/
| | |
| | |-dist/
| | | |
| | | |-README.MD
| | | |-runSubProject0001.cmd
| | |-main/
| | |-test/
| | |
| |-build.gradle
|
|--org.mycompany.subProject0002
| | |
| | |-dist/
| | | |
| | | |-README.MD
| | | |-runSubProject0002.cmd
| | |-main/
| | |-test/
| | |
| |-build.gradle
| .
| .
| . (goal is keeping going until subproject 1000)
|-build.gradle
|-settings.gradle
如何在构建时从每个子项目中获取 README 和“runSubProject”并复制到我的根项目中(目标是“{rootProject}/build/distribution/{subprojectName}/”)?
我所有的项目都使用“java-application”插件。
我试图让 gradle 遍历每个子项目并将这些文件复制到我的根项目中,但我失败了。
解决方法
所以这就是我在 build.gradle
的 org.mycompany.rootProject
中所做的,并且奏效了:
task getArtifactsFromSubprojects {
subprojects.each {
if(it.getName().contains("cjv")){
dependsOn it.getPath() + ':convertReadmeToPdf'
def sourcePath = it.getProjectDir().toString() + '/src/dist'
def destinationPath = getRootDir().toString() + '/src/dist/' + it.getName() + '/'
it.copy {
from sourcePath
into destinationPath
}
}
}
}
PS:我对我的子项目做了一些工作,并实现了一个名为 convertReadmeToPdf
的新任务,它在与 README.PDF
相同的文件夹中生成一个 README.MD
。
运行此任务后,结果如下:
org.mycompany.rootProject
|
|--src/
| |
| |-dist/
| | |
| | |-org.mycompany.subProject0001/
| | | |
| | | |-README.MD
| | | |-runSubProject0001.cmd
| | |
| | |-org.mycompany.subProject0002/
| | | |
| | | |-README.MD
| | | |-runSubProject0002.cmd
| | |
| | |-org.mycompany.subProject0003/
| | | |
| | | |-README.MD
| | | |-runSubProject0003.cmd
| | .
| | .
| | .
| |
| |-main/
| |
| |-test/
|
|
|-build.gradle
|-settings.gradle
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。