Проблема с ушным плагином Gradle с зависимостями ejb

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

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


person thoredge    schedule 21.06.2011    source источник


Ответы (3)


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

person thoredge    schedule 28.06.2011
comment
Для тех, кто наткнулся на это, два года спустя GRADLE-1637 все еще остается открытой задачей. - person trognanders; 27.07.2013

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

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)
        }
    }
}
person Frédéric Chopin    schedule 10.04.2017

Пять лет спустя GRADLE-1637 все еще открыт... Вот как я решил проблему с Грейдл 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)
        }
    }
}
person Tilo    schedule 01.07.2016