我使用Gradle(4.2.1)的shadowJar
插件来构建所谓的fatJar
或uberJar
。这按预期工作,但我想在完成构建后添加一些操作。更确切地说,我想使得到的文件可执行(以Unix
术语,即chmod +x
),然后将其复制到某个目录。我已经搜索了很多,我知道这两项任务都是可能的。我想知道是否应该编写一个运行shadowJar
然后执行我想要的脚本(任务),或者我应该更改shadowJar
本身以嵌入我需要的操作。< / p>
答案 0 :(得分:0)
我认为判断这种情况的一个好标准是问问自己这些新功能是否真的是shoadowJar
责任的一部分。如果答案是否定的,那么(正如你所提到的)最好还有另一个运行在其上的任务。通过这样做,您可以通过将shadowJar
与其他任务相结合,在更多不同的场景中重用shadowJar
。如果您定义新的一个依赖于shadowJar
,那么您将确保仍然可以单独调用shadowJar
任务,而调用新任务将始终触发task afterShadowJar (dependesOn: 'shadowJar') {
// manipulate file permissions, etc.
}
。你的新任务将是这样的:
results.Add(...)