2017-03-19 7 views
1

build.gradleファイルからタスクを抽出して適用するときに問題が発生し、app/root build.gradleファイルに戻ります。コンパイラはMarkupBuilderJsonSlurperを解決できますが、以下を解決できません:import org.apache.commons.lang.StringEscapeUtilsbuild.gradleから別の.gradleファイルにタスクを移動するときに問題が発生する

私は新しく作成したスクリプト内で、またアプリケーションレベルとプロジェクトレベルで依存関係として追加しようとしました。

'org.apache.commons.lang:commons-lang:3.5'

エラーが

Could not compile script '/project/app/newscript.gradle'. 
startup failed: 
> script '/project/app/newscript.gradle': 18: unable to resolve class org.apache.commons.lang.StringEscapeUtils 
    @ line 18, column 1. 
    import org.apache.commons.lang.StringEscapeUtils 
    ^

    1 error 

私が何か間違ったことをやっているの下にあるか、これは可能ではないでしょうか?スクリプトをapply script: newscript.gradleや別のプラグイン(newscript.gradle)とは別の方法で含める必要がありますか?

答えて

1

グラデーションスクリプトは基本的にGroovyファイルです。これは、Javaクラスと同様に、JVMバイトコードにコンパイルされます。したがって、インポートでスクリプトをコンパイルする場合、インポートされたクラスはクラスパス上になければなりません。 MarkupBuilderのようないくつかのクラスは、デフォルトで利用可能です(GroovyまたはGradleに含まれています)。

あなたのスクリプトでクラスを使用できるようにするには、このような何かを追加する必要があります。

import org.apache.commons.lang.StringEscapeUtils; 

buildscript { 
    repositories { 
     mavenCentral(); 
    } 
    dependencies { 
     classpath 'org.apache.commons.lang:commons-lang:3.5' 
    } 
} 

buildscript閉鎖はGradleのスクリプトのクラスパスにライブラリを追加し、あなたが使用することができるはずですそのクラス。

関連する問題