在Gradle订购时感到困惑.我是一个新手,之前使用Ant进行构建,与Gradle玩游戏可以解释其中的一些
简短的背景(如果有人会问"为什么你会这样做").我们在war文件中发布了一个Java WebStart应用程序.Java 7(-40以后)正在提示用户有关格式不正确的jar文件缺少元素.我想自动化一场战争的过程; 从'bin'文件夹中提取JavaWS的jar文件; 向Manifest添加元素稍后我将重新签署jar并重新组装战争,但是现在我只想添加Manifest条目.
我的问题是我已经定义了具有dependsOn元素的任务,但是任务似乎以错误的顺序运行(参见下面的gradle文件).我期望的是按顺序运行的任务:delete dir; 得到战争; 没有战争; 将元素添加到jar中.我所看到的(从日志文件中)是:将元素添加到jar中,实际上这会创建一个新的jar,dir被删除并且战争没有变形,所以我最终得到了原始的war文件内容.
我检查了:Gradle任务调用其他任务但是,我似乎根本无法使用mustRunAfter,可能与我拥有的gradle版本有关,但无论如何我真的不想控制不同任务的顺序,我希望(在我基于Ant的思考中)我可以通过让任务相互依赖来定义我想要的顺序.
谁能看到我的构建文件中的缺陷?注意:如果我从resignclientjars任务中删除"dependsOn"并在运行其他任务后手动运行它,它一切正常,我将我的罐子里的新元素放在Manifest中,所以我有一个可行的解决方法,但更喜欢知道我在这里做错了什么.
task (deletework, type: Delete) {
delete 'workYYY'
}
task (getlaganwar, type: Copy, dependsOn: deletework) {
from "d:/dev/v8-0-5/wars"
into "workYYY"
include 'lagan.war'
}
task (unwar, type: Copy, dependsOn: getlaganwar) {
from zipTree(file('workYYY/lagan.war'))
into file("workYYY/lagan")
}
task (resignclientjars, type: Copy, dependsOn: unwar) {
//task (resignclientjars, type: Copy) {
// mustRunAfter unwar
def workDir = file("workYYY/lagan")
def binDir = file(new File(workDir, "bin"))
def collection = files { binDir.listFiles() …Run Code Online (Sandbox Code Playgroud) gradle ×1