2017-10-06 26 views
0

私はGradleでミニ化タスクを実装しようとしています。私のコード以下の通りです: - 私はそれを実行するとGradleのミニ化タスク

plugins { 
    id "com.eriwen.gradle.js" version "2.14.1" 
} 

import com.eriwen.gradle.js.tasks.MinifyJsTask  
task minify() { 
     def index  = 1 
     def dynNames = [] 
     javascript.source { 
      custom { 
       js { 
        srcDir "$pExplodedFolderPath" 
        include "**/*.js" 
        exclude "**/*.min.js" 
       } 
      } 
     } 

     javascript.source.custom.js.files.eachWithIndex {fileSrc, idx -> 
      def dynName = "minifyTask_${index++}" 

      task "${dynName}"(type:MinifyJsTask) { 

       source = file(fileSrc.absolutePath) 
       dest = "/Users/user.name/Documents/" + fileSrc.getParentFile().getName() + "/" + fileSrc.name + ".min.js" 
       closure { 
        warningLevel = 'DEBUG' 
         compilationLevel = 'SIMPLE_OPTIMIZATIONS' 
       } 

      } 

      dynNames << dynName 
     } 

     dependsOn dynNames 

    } 

、それはすべてのファイルに対して、「NO-SOURCE」を印刷しません。誰でも私がここで間違っていることを助けることができますか?

答えて

1

あなたのタスクアクションをdoLast {}にラップするのを忘れました。あなたがコードを書いた方法は、設定フェーズ中に実行され、タスクが実行されるかどうかに関係なく常に実行されます。

+0

もし私が 'println'すれば、私はすべてのファイルを見ることができます。それはうまくいくはずですか? そうでなければ、私のコードを通して小さな例を教えてもらえますか?どの部分をdoLastに入れますか? – user3279692

+1

私が言ったように、あなたのコード**は**実行されていますが、**間違った時間**にあります。 Gradleには初期化フェーズ、設定フェーズ、実行フェーズがあります。あなたのコードは、タスクが実行されるべきかどうかに関わらず、設定フェーズで実行され、実行フェーズ中にはあなたのタスクには何もしないので、 'NO-SOURCE'でスキップされます。 – Vampire

+0

ヴァンパイア:私のコードに基づいて例を挙げることができれば、本当に役に立ちます。私はGradleの3つの段階を知っていますが、私が例を見ているところでは、私はdoLastが必要なのを見ていません。例: https://raw.githubusercontent.com/Canadensys/canadens-common/master/gradle/canadensys_web_build.gradle もう少しヘルプが必要です。 ありがとう – user3279692

関連する問題