【问题标题】:Gradle: copy subprojects files into rootproject when build itGradle:构建时将子项目文件复制到rootproject
【发布时间】:2021-09-04 15:18:50
【问题描述】:

鉴于这个 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 遍历每个子项目并将这些文件复制到我的根项目中,但我失败了。

【问题讨论】:

    标签: java gradle groovy resources subproject


    【解决方案1】:

    这就是我在org.mycompany.rootProject 中的build.gradle 中所做的,并且成功了:

    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.MD 相同的文件夹中生成一个README.PDF

    运行这个任务后,结果是这样的:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-12
      • 2018-05-29
      • 1970-01-01
      • 2021-02-04
      • 2015-11-30
      • 1970-01-01
      • 2019-02-11
      相关资源
      最近更新 更多