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