类型复制任务未执行

时间:2016-02-09 12:28:45

标签: gradle

我正面临执行Copy

类型任务的问题
  

删除没有源文件的任务

如果我在调试模式下运行,我会得到。

我的Plugin.groovy课程(调用插件任务的地方)

Task task = project.tasks.create("makeJarPlugin", MakeJarPluginTask.class)
task.dependsOn("clearDistPlugin", "build")

我的MakeJarPluginTask.grrovy

class MakeJarPluginTask extends Copy {
   @TaskAction
   def makeJar(){
      logger.lifecycle("creating a jar *********************")
      delete('dist/')
      from('build/intermediates/bundles/release')
      into('dist/')
      include('classes.jar')
      def jarName = new VersionName().getNameWithVersion() + '.jar'
      rename('classes.jar', jarName)
   }
}

现在,我使用

在我的android studio项目中执行此任务
gradlew makeJarPlugin --info

它给了我输出:

Skipping task ':network:makeJar1' as it has no source files.
makeJar1 UP-TO-DATE

Copy类型有问题,就像我执行删除任务并执行它一样。任何指针!

1 个答案:

答案 0 :(得分:0)

似乎this答案可能会有所帮助。

提示:您需要配置任务。否则它将不会被执行,因为整个配置在makeJar完成,这已经太晚了,因为这是一个动作。

您也可以尝试:

,而不是使用副本
class MakeJarPluginTask extends DefaultTask {
   @TaskAction
   def makeJar() {
     logger.lifecycle("creating a jar *********************")
      delete('dist/')
      project.copy {    

         from('build/intermediates/bundles/release')
         into('dist/')
         include('classes.jar')
         def jarName = new VersionName().getNameWithVersion() + '.jar'
         rename('classes.jar', jarName)
      }
   }
}