首页 文章

无法理解创建可执行fat-jar的gradle jar任务代码

提问于
浏览
1

我正在学习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.究竟是什么配置.compile?我假设查询某种依赖类路径,并且每个jar都是zipTree-ed . 然后所有这些东西都与基类路径合并 . 请详细说明

3.The zipTree方法,我假设每种 jar 都是unarchives,但我不确定 . 我对么?

问候,

1 回答

  • 2
    • 是的你是对的 . 如果未添加任何操作(主要使用 << 参见文档),则代码将在配置阶段运行 . 您提供的代码也在配置阶段运行 .

    • configurations.compile 指的是使用 configurations object(一种配置容器)的名为 compile 的配置 . 在gradle 2.0之前,默认情况下会使用 java 插件提供 compile 配置 . AFAIR现在被称为 javaCompile . 根据 zipTree 你也是对的 .

    • 是的你 .

相关问题