1

Given this gradle project:

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

What can I do to get README and 'runSubProject' from each subproject and copy into my rootproject (target is '{rootProject}/build/distribution/{subprojectName}/') when I build it?

All my projects use "java-application" plugin.

I was trying to make gradle iterate over each subproject and copy those files into my rootproject, but I have failed.

skrenato
  • 87
  • 1
  • 8

1 Answers1

0

So this is what I did in my build.gradle from org.mycompany.rootProject and it worked:

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: I did some work on my subprojects and implemented a new task called convertReadmeToPdf which produces a README.PDF in the same folder as README.MD.

After running this task, the result is like:

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
skrenato
  • 87
  • 1
  • 8