Проблема с Gradle ear-plugin с зависимостями ejb - PullRequest
1 голос
/ 21 июня 2011

Я пытаюсь использовать новый плагин ear-plug (gradle-1.0-milestone-4-20110610162713 + 0200) с ejb. Я добавляю ejb-jar как зависимость от развертывания. Однако, поскольку зависимости развертывания добавляются непереходно, я не получаю зависимости ejb-jar. Единственный способ, который я нашел, - это добавить ejb-jar в качестве earlib, но затем ejb-jar добавляется в каталог ear lib.

Есть ли способ добавить это так, чтобы ejb-jar был добавлен в корень, а его зависимости - в lib?

Ответы [ 3 ]

1 голос
/ 10 апреля 2017

Этот код работает для меня:

task doEarlib(dependsOn: 'ear') {
    def earibConfig = configurations.deploy.copy()
    earibConfig.transitive = true
    earibConfig.resolvedConfiguration.firstLevelModuleDependencies.each { 
        dependency ->
        dependency.children.each { 
            transitiveDependency ->
            dependencies.add('earlib', transitiveDependency.name)
        }
    }
}
1 голос
/ 28 июня 2011

Создание ушей, поддерживающих ejbs и тощие войны, будет реализовано как часть http://issues.gradle.org/browse/GRADLE-37 и / или http://issues.gradle.org/browse/GRADLE-1637.

0 голосов
/ 02 июля 2016

Пять лет спустя GRADLE-1637 все еще открыт ... Вот так я решил проблему с Gradle 2.13. Надеюсь, это кому-нибудь поможет.

apply plugin: 'ear'

def deployedModules = [ 'projectA', 'projectB', 'projectC' ]

deployedModules.forEach {
    def projectPath = ":${it}"

    evaluationDependsOn(projectPath)

    dependencies.add('deploy', dependencies.project(path: projectPath,
                                                    configuration: 'archives'))
    findProject(projectPath).configurations.runtime.allDependencies.forEach {
        boolean isEarModule = it instanceof ProjectDependency &&
                (it as ProjectDependency).dependencyProject.name in deployedModules
        if (!isEarModule) {
            dependencies.add('earlib', it)
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...