Zip任务标记为最新

时间:2015-06-16 10:41:04

标签: gradle build.gradle

您好我尝试从子文件夹中收集插件,压缩它们并复制到我的导出文件夹。

task buildPlugin {
  dependsOn ':empty-plugin:build'
}

task exportPlugin(type: Zip) {
  dependsOn buildPlugin

  // create new export folder as destination for nightly build
  def folder = '/export';
  def file = "${project.name}-sdk-${project.version}";

  // collect all plugins into cwc-sdk zip file
  baseName = file
  fileTree("cwc-plugin").each({
    if (it.name.endsWith(".zip")) {
        from it.absolutePath
    }
  })

  // move cwc-sdk zip file into export destination folder
  copy { into folder from file }
  delete file
}

我先运行干净的任务。 gradle日志:

:api:compileJava
:api:processResources
:api:classes
:api:jar
:empty-plugin:compileJava
:empty-plugin:processResources
:empty-plugin:classes
:empty-plugin:jar
:empty-plugin:assemble
:empty-plugin:compileTestJava UP-TO-DATE
:empty-plugin:processTestResources UP-TO-DATE
:empty-plugin:testClasses UP-TO-DATE
:empty-plugin:test UP-TO-DATE
:empty-plugin:check UP-TO-DATE
:api:javadoc
:empty-plugin:zip
:empty-plugin:build
:buildPlugin
:exportPlugin UP-TO-DATE

BUILD SUCCESSFUL
Total time: 2.097 secs

首次运行时:exportPlugin被标记为UP-TO-DATE,我没有从构建中获取压缩文件。当我运行:exportPlugin再一切都很好。当我手动链接两个任务(rungradle clean,下次运行gradle buildPlugin,通过doublclick运行gradle exportPlugin到IDEA的任务)时,它也很好。

我认为任务的顺序仍然可以。我不需要使用mustRunAfter

我还玩过copySpecbuildplugin.outputs.files。但没有任何帮助。

有人可以帮我解决初始构建运行的问题吗? 谢谢!

更新: Zip任务是抽象的复制任务

  

AbstractCopyTask是所有复制任务的基类。 (Docu

我发现了comment from Peter Niederwieser

  

复制任务只有在有要复制的内容时才会执行。告诉它要复制什么是配置任务的一部分,因此需要在配置阶段而不是执行阶段完成。

如何在fileTree循环中将from it.absolutePath代码行更改为配置阶段的一部分?

0 个答案:

没有答案