我正在开发一个使用EJB2的项目。创建的EJB Jars需要应用程序服务器进行额外处理才能在war / ear中捆绑并部署。
我创建了一个自定义任务,如果我明确地调用它(gradle ejbDeploy),它可以进行额外的处理,但是我很难将它安装到gradle多项目生命周期中。我需要以某种方式将它添加到构建图中,以便在jar任务之后自动执行。
我的第一次尝试是用
将它添加到jar中jar.doLast{
ejbDeploy.execute()
}
似乎适用于任意代码块,but not for tasks
推荐的解决方案是什么?我看到三种方法:
是否有推荐的方法?
谢谢!
答案 0 :(得分:6)
我会选择方法#3并将其设置为战争任务的依赖关系,例如:
war {
it.dependsOn ejbDeploy
...
}
答案 1 :(得分:3)
我是Gradle的新手,但我会说答案真的取决于你想要完成的事情。
如果你想在有人运行命令gradle jar
时执行任务,那么方法#3就不够了。
这是我为类似的东西做的事情
classes {
doLast {
buildValdrConstraints.execute()
}
}
task buildValdrConstraints(type: JavaExec) {
main = 'com.github.valdr.cli.ValdrBeanValidation'
classpath = sourceSets.main.runtimeClasspath
args '-cf',valdrResourcePath + '/valdr-bean-validation.json'
}
答案 2 :(得分:0)