在同一个项目中使用 gradle war 和 Ear 插件是否可能/明智?

And*_*ner 3 java eclipse ear war gradle

我发现ear插件会覆盖war插件并阻止war任务被调用。我直接调用它就解决了这个问题。

这是明智的还是我应该放弃并转移到 eclipse 和 gradle 中的多项目设置?

ear {
    doFirst {
        println " - force build war..."
        tasks.war.execute()
    }

    from("$destinationDir") {
        exclude('nz')
        rename ('TrialApp(.*)(.war)', 'TrialApp.war')
        include 'TrialApp*.war'
        into('')
    }
    deploymentDescriptor {  
                applicationName = "trialapp"
                initializeInOrder = true
                displayName = "Trial App"  
                description = "Trial App EAR for Gradle documentation"
                libraryDirectory = "WEB-INF/lib"  
                webModule("TrialApp.war", "TrialApp")  
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ira 5

Ear 插件不会覆盖warWar 插件,它只是默认不执行任务。无论如何,你想做的事情肯定是可能的。您可以简单地依赖于任务本身,而不是向单独的 war 项目添加依赖项(如文档中所述war

apply plugin: 'war'
apply plugin: 'ear'

dependencies {
    deploy files(war)
}   
Run Code Online (Sandbox Code Playgroud)