Gradle 执行一个梯度任务
我有两个任务:Gradle 执行一个梯度任务,gradle,Gradle,我有两个任务: war { webInf { from 'src/main/resources/WEB-INF' } manifest { attributes 'Implementation-Version': versioning.info.display } } task createDemoWar(type: War, dependsOn: classes) { archiveName "webapi-demo-${versioning.
war {
webInf { from 'src/main/resources/WEB-INF' }
manifest {
attributes 'Implementation-Version': versioning.info.display
}
}
task createDemoWar(type: War, dependsOn: classes) {
archiveName "webapi-demo-${versioning.info.display}.war"
destinationDir = file("$buildDir/dist")
copy {
from 'scopes'
include 'configuration.demo.properties'
into 'src/main/resources/'
}
}
task createDevelopmentWar(type: War, dependsOn: classes) {
archiveName "webapi-dev-${versioning.info.display}.war"
destinationDir = file("$buildDir/dist")
copy {
from 'scopes/'
include 'configuration.development.properties'
into 'src/main/resources/'
}
}
这两个任务都试图将属性文件从scopes
文件夹复制到src/main/resources/
文件夹
我只运行一个任务,但是在src/main/resources/
中复制了两个文件(configuration.demo.properties
和configuration.development,properties
)
有什么想法吗?您在配置阶段使用了两个复制规范(注意,在这种情况下,复制规范不会配置您的任务,但会在其配置中添加一些额外的操作)。这意味着您的文件会在配置期间被复制。这都是因为:
copy {
...
}
您必须在执行期间运行它,为此,请尝试将其移动到doLast
或doFirst
闭包中,就像这样(对于这两个任务):
在这种情况下,只有在执行任务之前,才会复制文件。这种行为真的很奇怪,不是吗?我不知道配置执行…阶段。你能给我一些链接,让我了解一下吗?一开始可能有点奇怪,但后来你意识到了,这是真的非常清楚。您可以在官方用户指南中阅读有关构建生命周期的内容,谢谢。不过,我有一个任务类似于:
task createDists(dependsOn:[createDemoWar,createDevelopmentWar])
。当我运行这个createDists
任务时,会生成两个war,但是任何文件都在src/main/resources
task createDemoWar(type: War, dependsOn: classes) {
archiveName "webapi-demo-${versioning.info.display}.war"
destinationDir = file("$buildDir/dist")
doFirst {
copy {
from 'scopes'
include 'configuration.demo.properties'
into 'src/main/resources/'
}
}
}