Создание ShadowJar, который содержит другие ShadowJar - PullRequest
0 голосов
/ 06 марта 2019

У меня есть многопроектный проект gradle, который я пытаюсь очистить, и, где это возможно, я хотел бы выразить свои зависимости shadowJar в терминах существующих shadowjar.Например, если у меня есть проекты LibA и LibB, а также продукт Prod1, я хотел бы построить shadowjar для Prod1 на основе shadowjar для LibA и LibB.

Область интересов в файле build.gradleнапоминает этот пример:

project (':LibA') {
    dependencies {
        compile "org.glassfish:javax.json:1.0.4"
        // Other 'compile' dependencies...
    }
    test.dependsOn("shadowJar");

    shadowJar {
        zip64 true
        dependencies {
            include(dependency("org.glassfish:javax.json:1.0.4"))
            // Other 'include' dependencies...
        }
    }
}

project (':LibB') {
    dependencies {
        compile "org.glassfish:javax.json:1.0.4"
        // Other 'compile' dependencies...
    }
    test.dependsOn("shadowJar");

    shadowJar {
        zip64 true
        dependencies {
            include(dependency("org.glassfish:javax.json:1.0.4"))
            // Other 'include' dependencies...
        }
    }
}

project (':Prod1') {
    dependencies {
        compile project(':LibA')
        compile project(':LibB')
        compile "org.external:packageA.packageB:1.8"
        // Other 'compile' dependencies...
    }
    test.dependsOn("shadowJar");

    shadowJar {
        zip64 true
        dependencies {
            include(.... LibA-all.jar ....)  // <-- What goes here?
            include(.... LibB-all.jar ....)  // <-- What goes here?
            include(dependency("org.external:packageA.packageB:1.8"))
            // Other shadowjar 'include' dependencies...
        }
    }
}
...