我正在学习Gradle,但我不明白创建一个包含所有依赖项的jar的jar任务代码(取自Gradle Cookbook):
jar {
baseName = jarBaseName
manifest { attributes "Main-Class": mainClass }
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}
我的问题是:
1.任务名称为jar。因为它不是像jar一样写的<< {...}我假设这是在配置阶段运行,而不是执行阶段。我是对的吗?
2. configurations.compile究竟是什么?我假设查询某种依赖类路径,并且每个jar都是zipTree-ed。然后所有这些东西都与基类路径合并 。请详细说明
3.使用zipTree方法,我假设每种罐子都是unarchives,但我不确定。我是对的吗?
问候,
答案 0 :(得分:2)
是的,你是对的。如果未添加任何操作(主要使用<<
查看文档),则代码将在配置阶段运行。您提供的代码也在配置阶段运行。
configurations.compile
使用compile
对象(一种配置容器)引用名为configurations
的配置。在gradle 2.0之前,默认情况下会为compile
插件提供java
配置。 AFAIR现在被称为javaCompile
。根据{{1}},你也是正确的。
是的,你是